교착상태란 무엇일까? 교착상태(Deadlock)란 자원이 한정적인 상황에서 두 개 이상의 프로세스가 각자의 자원을 가진 채 상대방의 자원을 필요로 하는 경우, 아무 일도 못하고 기다리는 상태를 의미한다. 외부의 조치가 없는 한 프로세스들은 영원히 그 상태를 유지하며 서로의 자원을 사용할 수 있을 때까지 기다리게 된다. OS? Oh Yes(김주균 지음) 교재에서는 강아지의 집을 만들기 위해 형은 톱을 갖고 있고, 동생은 망치를 들고 있는 채로 서로의 도구를 필요로 할 때를 가정하고 있다. 교착상태의 원인 시스템의 한정적인 자원 < 프로세스들의 요청 위에서 교착상태의 예시로 든 형과 동생의 상황을 가장 쉽게 해결하고 싶다면 톱과 망치를 두 개씩 준비해놓으면 된다. 하지만 과연 이 방법이 최선일까? 경제적인 ..
우선순위 (Priority) 스케줄링 프로세스가 갖고 있는 우선순위 대로 CPU를 할당하는 스케줄링 기법이다. 새로운 프로세스가 도착하면 현재 실행 중인 프로세스와 우선순위를 비교하고 우선순위가 더 높은 프로세스를 먼저 실행한다. 우선순위가 같은 프로세스들은 FCFS와 동일한 방식으로 실행된다. 다단계 큐 (Multi-level Queue) 스케줄링 프로세스들이 우선순위 스케줄링과 동일하게 각각의 우선순위 값을 가지고 있다. 여러 개의 큐 자료구조가 우선 순위 별로 존재하는데, 프로세스들은 자신의 우선순위 값에 해당하는 큐에 들어간다. 우선순위가 낮은 하위 단계의 큐가 실행 중이더라도 만약 상위 단계의 큐에 프로세스가 도착하면 하위 단계의 큐는 상위 단계 큐에게 CPU를 뺏기는 선점 방식의 스케줄링이다...
프로세스 생성 (Process Creation) 부모 프로세스가 여러 개의 자식 프로세스를 복제 생성한다. 자식은 부모의 주소 공간(binary address space)과 공간 내부에 있는 데이터(OS data)까지 복사한다. 자식 프로세스는 복사한 공간에 새로운 프로그램을 올린다. 예시) 유닉스 fork() : 시스템 콜이 새 프로세스를 생성한다. 부모를 그대로 복사하고, 주소 공간을 할당한다. fork() -> exec() : 시스템 콜이 새로운 프로그램을 메모리에 올린다. 프로세스는 계층 구조(트리)로 형성되며, 필요한 자원은 운영체제로부터 받는다. 자원 공유 방법 2가지 부모와 자식끼리 자원을 공유하는 모델 자원을 공유하지 않는 모델 (공유하지 않는게 일반적) 프로세스 수행 방법 2가지 부모와 ..
- Total
- Today
- Yesterday
- cron시스템
- atq
- GithubAPI
- virtualbox
- cat
- OnActivityForResult
- 백준27211
- Baekjoon27219
- 리눅스cron
- awk프로그램
- api문서
- 버추억박스에러
- linux파일
- linuxtouch
- 백준27219
- 사용자ID
- 리눅스
- linuxawk
- SELECT #SELECTFROM #WHERE #ORDERBY #GROUPBY #HAVING #EXISTS #NOTEXISTS #UNION #MINUS #INTERSECTION #SQL #SQLPLUS
- baekjoon
- 버추억박스오류
- 쇼미더코드
- Linux
- E_FAIL
- whatis
- GitHubAPIforJava
- 코테
- linuxgedit
- Baekjoon27211
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |