1. System Model 교착 상태란 프로세스에게 한정된 자원이 분배됬을 때, 프로세스들이 자원의 부족으로 더이상 실행을 할 수 없어 끝낼 수 없으며, 자원이 프로세스에게 묶여 다른 작업을 시작하는 것도 불가능한 상태를 말한다. 한정된 자원에 대해 정상적으로 시스템이 운영되기 위해 프로세스는 요청, 사용, 방출 순서로만 자원을 사용할 수 있다. 2. Necessary Conditions 교착상태는 다음 네 가지 조건이 동시에 성립될 때 발생한다. ▪ mutual exclustion(상호 배제) : 최소한 하나의 자원이 비공유 모드로 점유되어야 한다. 비공유 모드에서는 한 번에 한 프로세스만이 그 자원을 사용할 수 있다. ▪ hold-and wait(점유하며 대기) : 프로세스는 최소한 하나의 자원을 ..
1. 개요 Operating System Concepts 9th Edition(8th==공룡책)의 7장 프로그래밍 문제로 은행원 알고리즘을 다중스레드 프로그램을 작성한다. 이번 과제에서는 은행원 알고리즘 중 자원 요청 알고리즘(Resource-Request Algorithm)으로 구현한다. 2. 개념 및 용어정리 1. 은행원 알고리즘 : 프로세스가 자원들을 요청하면 시스템은 그것을 들어주었을 때 시스템이 계속 안전 상태에 머무르게 되는지 판단하고 안전하게 된다면 그 요청을 들어준다. 2. 자원 요청 알고리즘 : 은행원 알고리즘을 구현하는 방식 중 하나로 프로세스가 자원을 요청하면 우선적으로 남아있는 자원보다 같거나 작게 요청했는지 확인한 후 가상으로 자원을 할당해 준다. 이후 남은 자원을 가지고 시스템의..
1. 개요 GCM이란 Google Cloud Messaging Service로 구글이 제공하고 있는 API 기능 중 하나입니다. 직접 Sender가 Receiver에게 메시지를 보내는 것이 아니라 GCM에게 메시지를 보내고 해당 메시지를 GCM이 다시 Receiver에게 전달해 줍니다. 추가로 기존 eclipse에서 제공하던 Google Cloud Messaging기능이 IDE가 Andoird Studio로 변경되면서 Ant 기반 빌드 방식을 Gradle로 변경하였습니다. 즉 기존 프로젝트의 hash키를 등록하는 방식이 아닌 프로젝트 내 build.gradle에 GCM을 사용한다는 문장을 추가함으로써 쉽게 GCM을 사용하실 수 있습니다. Sender가 GCM에게 메시지를 전달하는 방법에는 php를 이용한..
1. 개요 각각의 철학자가 생각을 하다가 배가 고프면 식사를 합니다. 식사를 하기위해서는 한 쌍은 젓가락(포크)가 필요합니다. 만약 철학자 모두가 오른쪽의 젓가락을 든다고 한다면 모두 하나의 젓가락만 가지고 있기 때문에 식사를 하지 못합니다. 2. 해결방안 첫 번째 해결 방안은 젓가락의 수가 철학자의 수보다 많으면 됩니다. 두 번째 해결 방안은 누군가 한명이 반대 젓가락을 먼저 들면 됩니다. 세 번째 해결 방안은 철학자가 2개의 젓가락을 모두 집을 수 있을 때만 집게 합니다. 3. Source Code 두 번째 해결 방안인 누군가 한명이 반대 젓가락을 먼저 집게 하는 방식을 조금 변경하여 짝수 철학자와 홀수 철학자로 나누어 반대 방향 젓가락을 먼저 집게 하도록 구현하였습니다. C언어로 구현하였으며 mut..
.txt와 같이 문자 데이터가 들어 있는 파일을 읽고 쓰는데 가장 자주 쓰이는 Object입니다. 직적 디스크를 접근을 하지 못해 FileReader Object를 이용하여 접근합니다. 1. BufferedReader BufferedReader의 읽기 함수는 총 5개가 있습니다. 위 5개 중 저희에게 필요한 것은 한 줄씩 읽는 readLine()이라는 함수입니다. 해당 함수는 읽은 한 줄의 데이터를 String 타입으로 저장하며 더 이상 읽을 데이터가 없으면 Null을 리턴합니다. 아래 함수는 txt와 같은 문서 파일을 읽고 그대로 출력하는 코드입니다. import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.F..
하드 디스크의 파일에 접근하여 데이터를 읽는 Object입니다. 제일 낮은 단계의 파일 입출력 Object이며 해당 함수를 응용하여 만들어진 다른 입출력 Object들을 java에서는 제공하고 있습니다. 1. FileReader FileReader의 기본 함수인 read()는 한글자 씩 파일을 읽습니다. import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class main { public static void main( String argv[] ) throws IOException{ File mfile = new File("test.txt"..
1. 파일 속성 보기 해당 경로에 파일이 있다고 하였을 때 파일의 속성들을 알아볼 수 있는 기본 함수들입니다. 함수명 기능 exists() 존재 여부를 확인 합니다. getAbsolutePath() 해당 파일의 절대 경로를 보여줍니다. getName() 파일의 이름을 출력합니다. lastModified() 마지막 수정 시간을 밀리세컨드로 가져옵니다. length() 파일의 크기를 가져옵니다. canRead() 읽기 가능 여부를 보여줍니다. canWrite() 쓰기 가능 여부를 보여줍니다. isFile() 파일인지 보여줍니다. isDirectory() 폴더인지 보여줍니다. import java.io.File; public class main { public static void main( String ar..
1. Scanner 자바에서의 가장 기본적인 입출력입니다. 데이터 타입에 대한 함수가 다르기 때문에 알맞는 타입의 함수를 호출해야 합니다. import java.io.IOException; import java.util.Scanner; public class main { public static void main( String argv[] ) throws IOException { Scanner sc = new Scanner(System.in); int integer = sc.nextInt(); float flo = sc.nextFloat(); double dou = sc.nextDouble(); String str = sc.next(); boolean bool = sc.hasNext(); sc.close..
1. 포인터 연산이란? 포인터 타입을 제공하는 언어는 보통 두가지의 기본적인 포인터 연산과 역참조를 제공한다다. 첫 번째 포인터 연산은 포인터 변수의 값을 유용한 주소로 설정한다. 포인터 변수가 단지 동적 기억장소를 관리하는데 사용되면, 연산자나 내장 부 프로그램에 의한 할당으로 포인터 변수를 초기화 하는 역할을 한다. 즉 표현식에 포함된 포인터 변수는 바인딩되어 있는 메모리 셀의 내용에 대한 참조로서 해석될 수 있다. 두 번째 역참조는 변수에 대한 간접 주소 지정을 위해서 사용된다. 포인터 변수에 바인딩된 메모리 셀이 가리키는 메모리 셀의 내용에 대한 참조이다. 즉 역참조는 간접참조라고 할 수 있다. 포인터의 여감조는 명시적이거나 묵시적일 수 있다. Fortran 95에서 역참조는 묵시적이였으나, 오늘..
1. C++ Value type Group Type names* Notes on size / precision Character types char Exactly one byte in size. At least 8 bits. char16_t Not smaller than char. At least 16 bits. char32_t Not smaller than char16_t. At least 32 bits. wchar_t Can represent the largest supported character set. Integer types (signed) signed char Same size as char. At least 8 bits. signed short int Not smaller than char..
- Total
- Today
- Yesterday
- Res
- 자바 입출력
- java 파일 입출력
- 카운터
- 파일 입출력
- Java Decompiler
- java url
- 파일입출력
- android
- vim
- 서버
- 포켓몬 Go
- 포켓몬 고
- 아두이노
- 인텐트
- vim 설치
- 유전 알고리즘
- c언어
- 안드로이드
- Service
- 알고리즘
- 5582
- 테라펀딩 #투게더펀딩 #P2P투자 #부동산 소액 투자 #카카오 #토스
- php
- 유전
- LISTVIEW
- counter
- Notification
- java
- jad
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |