본문 바로가기

Operating System4

Chapter07. 교착상태 : 문제풀이 7.1 그림7.10에 보인 교착상태를 생각해 보자.이 예에서 교착상태를 위한 네 가지 필요조건이 정말로 성립함을 보이시오.이 시스템에서 교착상태를 회피하는 간단한 법칙을 설명하시오. cf) 교착상태를 위한 필요 조건들1. 상호 배제 : 최소한 하나의 자원이 비공유 모드로 점유되어야 한다. 비공유 모드에서는 한 번에 한 프로세스만이 그 자원을 사용할 수 있다. 다른 프로세스가 그 자원을 요청하면, 요청 프로세스는 자원이 방출될 때까지 반드시 지연되어야 한다. 2. 점유하며 대기 : 프로세스는 최소한 하나의 자원을 점유한 채, 현재 다른 프로세스에 의해 점유된 자원을 추가로 얻기 위해 반드시 대기해야 한다. 3. 비선점 : 자원들을 선점할 수 없어야 한다. 즉, 자원이 강제적으로 방출될 수 없고, 점유하고 .. 2017. 1. 31.
Chapter06. 프로세스 동기화 : 문제풀이 6.1 경쟁 조건은 ~ 6.2 두 개의 프로세스를 위한 임계구역 문제에 대한 최초의 올바른 소프트웨어 해결 방안을 제시한 사람은 Dekker였다. 두 개의 프로세스 P0와 P1은 다음 변수들을 공유한다. ~프로세스 Pi(i==0 or 1)와 Pj(j==1 of 0)의 구조는 그림6.21과 같다. 이 알고리즘이 임계구역 문제의 세 가지 요건을 모두 충족시킴을 증명하시오. p.299참고 6.3 ~2 cf) 임계구역에 대한 세 가지 문제 상호배제 : 프로세스 P가 자신의 임계구역에서 실행된다면, 다른 프로세스들은 그들 자신의 임게구역에서 실행될 수 없다. 진행 : 임계구역이 비어있다면, 나머지 구역에서 실행중이지 않은 프로세스들만 다음에 누가 그 임계구역으로 진입할 수 있는지 결정할 수 있으며, 이 선택은 무.. 2017. 1. 17.
Chapter05. CPU 스케줄링 : 문제풀이 5.1 스케줄러가 입출력 중심 프로그램과 CPU 중심 프로그램을 구분하는 것이 중요한 이유는 무엇인가?각 프로그램에 맞는 CPU 버스트의 분포가 다르기 때문에, 각각의 CPU 버스트를 파악해야 적절한 CPU 스케줄링 알고리즘을 선택할 수 있다. (입출력 중심 프로그램은 짧은 CPU 버스트를 많이 가지고 CPU 중심 프로그램은 다수의 긴 CPU 버스트를 가질 수 있다.) 5.2 다음과 같은 두 스케줄링 기준들은 어떤 상황에서 서로 충돌하는 지 논의하시오.CPU 이용률과 응답 시간평균 총처리 시간과 최대 대기 시간입출력 장치 이용률과 CPU 이용률 cf) 스케줄링 기준 : CPU 이용률 - 40% ~ 90% 처리량 - 단위 시간당 완료된 프로세스의 갯수 총처리 시간 - 프로세스의 제출시간과 완료시간의 차 대.. 2017. 1. 15.
Chapter04. 스레드 : 문제풀이 1 다중 스레드 기법을 사용했을 때 단일 스레드 기법을 사용했을 때 보다 성능이 좋지 않은 프로그래밍 사례 2가지를 제시하시오.모든 순차적 프로그램은 다중 스레드 기법을 사용하여도 성능이 좋지 않다. 또한 shell 프로그램은 항상 환경변수, 작업 디렉토리 등의 정보를 감시해야 하기 때문에 다중 스레드 기법이 필요하지 않다(ex. C-shell, Korn shell). 2 다음 중 다중 스레드 프로세스의 스레드 사이에 공유되는 프로그램 상태는 무엇인가?레지스터 값들힙 메모리전역 변수들스택 메모리 모든 스레드는 각각의 레지스터와 스택을 가지므로, 공유되는 프로그램 상태는 B힙 메모리와 C전역 변수들 이다. 3 다수의 사용자 수준 스레드를 사용하는 다중 스레드 해결책이 단일 처리기 시스템보다 다중 처리기 시.. 2017. 1. 10.