복습문제5.2 병행성이 발생하는 3가지 상황은 무엇인가?-다수의 응용 =>활동중인 다수의 응용들 간에 처리시간의 동적 공유를 위해 다중 프로그래밍이 개발되었다.-구조화된 응용 =>모듈화된 설계 원칙과 구조적인 프로그래밍의 확장결과, 일부응용들은 병행프로세스들의 집합으로 구현된다.-운영체제 구조 =>시스템 프로그래머도 구조적인 프로그래밍 기법을 사용하며, 그 결과 운영체제도 다수의 프로세스와 스레드의 집합으로 구현된다.5.4 프로세스 간 인식 정도를 3가지로 구분하고, 각각의 정의를 기술하라.-서로를 인식하지 못하는 프로세스들 => 이들은 협동 작업을 하지 않는 서로 독립적인 프로세스들이다. 다수의 독립적인 프로세스들로 구성된 다중프로그래밍 환경이 대표저인 예이다. 각 프로세스들은 일괄 작업을 수행할 수도 있고, 대화형 작업을 수행할수도 있으며, 이 두형태가 혼합된 작업을 수행할수도 있다. 비록 프로세스들은 서로 협동 작업을 수행하지는 않지만, 운영체제는 프로세스들 간에 자원에 대한 경쟁을 고려해야만 한다-서로를 간접적으로 인식하고 있는 프로세스들 =>다른 프로세스들의 이름을 알고있지는 않지만, 입출력 버퍼와 같은 자원을 공유하는 프로세스들이다. 프로세스들은 서로 간에 공통 자원 공유를 통한 협력관계를 갖는다.-서로를 직접적으로 인식하고 있는 프로세스들 =>다른 프로세스들의 이름을 알고 있으며, 이를 이용해 직접 통신한다. 이들은 공통된 작업을 함께 수행하기위해 설계 되었으며, 역지 협력관계를 갖는다.5.7 상호배제를 보장하기 위한 요구 조건을 기술하라.-상호배제가 강제되어야 한다. 즉 동일한 자원이나 공유객체에 대한 임계영역을 가지고 있는 모든 프로세스들 중에서 어느 한 순간에는 반드시 단 하나의 프로세스만이 임계 영역에 진입할수 있다.-임계영역이 아닌 곳에서 수행이 멈춘 프로세스는 다른 프로세스의 수행을 간섭해서는 안된다.- 임계영역에 접근하고자 하는 프로세스의 수행이 무한히 미루어져서는 안된다. 즉 교착상태 및 기아가 일어나지 않아야 한다.- 임계영역이 비어 있을 때, 임계영역에 진입하려고 하는 프로세스는 즉시 임계영역에 들어갈 수 있다.-프로세서의 개수나 상대적인 프로세스 수행 속도에 대한 가정은 없어야 한다.-일단 임계영역에 들어간 프로세스는 일정한 시간 내에 임계영역에서 나와야만 한다.5.9 이진 세마포어와 일반 세마포어의 차이는 무엇인가?-유지할수 있는 값의 범위에 따라 다른데 이진세마포어는 0과1의 값만 유지할수 있지만, 일반세마포어는 count 값을 지정해서 할수 있다.5.11 모니터란 무엇인가?-세마포어와 같은 기능은 하나 객체화시켜서 세마포어보다 훨씬 더 사용하기가 쉽다.-프로그래밍 언어 수준에서 제공되는 구성체로, 세마포어와 동일한 기능을 제공하며 보다 사용하기가 쉽다.5.12 메시지 전달에서 블록킹과 비블록킹의 차이는 무엇인가?-메세지 전달에 있어 블록킹은 메시지가 수신대거나 송신될때까지 기다리는 것이고,비블록킹은 기다리지 않고 메시지가 수신되거나 송신되지 않을 경우 다른작업을 수행하는 것이다.연습문제5.4 바쁜대기(busy wating)가 블록킹대기(blocking wating)와 비교해 볼 때 항상 비효율적인가(처리기 시간 측면에서)?논의해보자-busy waiting(바쁜대기)은 처리기가 반복적으로 임계영역에 들어갈수 있는지 확인해야 하고, 블록킹은 아예 처리기의 순서가 올때까지 기다리는 것이므로 처리기가 다른 수행을 할수 있게 된다. 그래서 블록킹대기가 더 효율적인거 같다.5.9 이진 세마포어를 이용하여 범용 세마포어를 구현할 수 있다. SemWaitB, semSingnalB와 delay, mutex라는 두 개의 이진 세마포어를 사용하여 다음과 같이 구현해 보자.void semWait(semaphore s){semWaitB(mutex);s--if(s
취업김진수컴퓨터정보공학부목 차주차별 계획사서전산 사서주차별 조사 사항주차별 조사 사항김진수1주차 : 주차별 조사 항목 선정2주차 : 사서란 무엇인가?4주차 : 주제 전문 사서란?6주차 : 도서관의 종류3주차 : 사서의 종류?5주차 : 사서가 되기 위해서?7주차 : 취업 스펙8주차 : 전산 사서9주차 : 도서관 전산화의 미래사서사서란?김진수고등교육기관에서 문헌정보학을 이수각종 도서관 및 정보기관에서 이용자의 정보요구를 충족시키기 위하여 서비스하는 사람.사서는 이용자를 알고, 자료를 알고, 이용자와 자료를 연결할 수 있어야 한다사서의 종류김진수정사서준사서주제 전문사서2급 정사서1급 정사서사서 교사주제 전문 사서김진수문헌정보학 + 컴퓨터정보공학 = 전산사서문헌정보학 과 타 전공 학위를 함께 취득하나의 전공만 가진 사서보다 전공관련 정보를 더 많이 알고 있으므로 이용자들에게 더 자세하고 정확한 정보를 줄 수 있다정사서가 되기 위해서김진수1급정사서는 문헌정보학 또는 도서관학 박사학위를 받은 사람 2급정사서로서 문헌정보학 또는 도서관학 외의 박사학위를 받거나 정보처리기술사 자격을 받은 사람 2급정사서로서 도서관 근무경력 또한 연구경력이 6년 이상으로 석사학위를 받은 사람 2급정사서 자격증을 소지하고 도서관 근무경력이 9년 이상으로 소정의 교육과정을 이수한 사람2급정사서는 대학의 문헌정보학과 또는 도서관학과를 졸업한 사람 문헌정보학 또는 도서관학 석사학위를 받은 사람 교육대학원에서 도서관 또는 사서교육 석사학위를 받은 사람 문헌정보학 또는 도서관학 외의 석사학위를 받고 소정의 교육과정을 이수한 사람 준사서로서 석사학위를 받은 사람 준사서로서 근무경력 3년으로 소정의 교육과정을 이수한 사람 대졸자 준사서로서 근무경력 1년으로 소정의 교육과정을 이수한 사람준사서가 되기 위해서김진수전문대학 도서관과를 졸업한 사람전문대학 졸업자로 소정의 교육과정을 이수한 사람대졸자로서 재학 중 문헌정보학 또는 도서관학을 부전공한 사람도서관의 종류김진수시립 도서관공립 도서관대학 도서관특수 도서관취업 스펙김진수대학 도서관2급 정사서정보처리기사컴퓨터 활용 1급한자능력검정 3급이상토익 700 이상전산 사서김진수전산 사서의 자질문헌정보학 지식전산 지식커뮤니케이션 기술열의지적 호기심대처능력행정능력도서관 업무 실무 경험전산 사서김진수도서관전산화의 미래도서관 자동화는 완성이 없다끝. 감사합니다.{nameOfApplication=Show}
알렉산드리아 도서관고대 알렉산드리아 도서관 구성 장서수 장서 수집 고대 알렉산드리아 도서관 파괴 현대 알렉산드리아 도서관 현대 알렉산드리아 도서관 사진 목차구성 Mouseion 박물관과 도서관 본관은 궁전 경내의 브루케이움이라고 하는 구역에 설치 serapium 프톨레마이오스 3 세가 사라피스 신전에 설립 40000 개 이상의 두루마리를 소장 Mouseion 의 자료보관장소 부족으로 인해서 별도의 도서관이 필요 고대 알렉산드리아 도서관장서수 70 여 만권정도 인데 대부분이 파피루스 형태 책의 분량이 지금의 것보다는 작아서 생각보다는 넓은 장소를 차지하지 않음 고대 알렉산드리아 도서관장서 수집 프톨레미왕의 정책 : 지구상의 모든 민족의 책을 수집하여 보관 구매 : 사서들을 각지에 파견하여 책을 구매하였으며 , 도서관 자체가 큰 도서 수요자 필사 : 항구의 정박 중인 선박의 책을 빌려 필사하고 원본을 돌려주지 않거나 하는 방법 현대 도서관의 장서수로도 막대한 수인 70 여만권 고대 알렉산드리아 도서관BC 47 년 civil war 에서 시저에 파괴 세라피온이 도서관 센터 AD 391 년 테오필러스 주교가 세라피온을 종교적인 이유에서 파괴 도서관의 존재기간 BC 300 년경 - AD 390 년경 알렉산드리아 도서관의 파 괴부활 이집트 정부가 주도하고 유네스코와 선진 각국의 지원 지난 10 년간 2 억 달러의 비용이 투입 많은 나라의 자금과 기술 , 장비를 지원 받은 알렉산드리아 도서관은 기술자들이 참여하는 첨단 인텔리전트 빌딩으로 건설 현대의 알렉산드리아 도서관장서 400 만권의 장서가 목표 = 현재까지 확보된 책은 50 만권 과거 알렉산드리아에 산재했던 지역 도서관들에서 수집된 고서들과 , 5000 여권에 이르는 중요 과학도서들이 포함 2001 년 개관하였으며 열람시간은 9 시까지이며 누구나 자유롭게 열람가능하고 인터넷 검색도 가능 현대의 알렉산드리아 도서관감사합니다 끝{nameOfApplication=Show}
9장 복습문제9.2 대화형 운영체제에서 보통 가장 중요시하는 성능 요구사항은 무엇인가?응답시간9.3 반환시간과 응답시간은 어떻게 다른가?반환시간 은 프로세스가 시스템으로 진입한 후부터 종료할 때까지 걸린시간을 말하는 것이고, 응답시간은 프로세스가 시스템에 요구를 한 후 이에 대해 시스템에서부터 첫 번째 응답이 올때까지의 시간을 말한다.9.5 선점 모드 스케줄링과 비선점 모드 스케줄링의 차이점은 무엇인가?선점 모드 스케줄링은 현재 실행중인 프로세스라 할지라도 운영체제에 의해 인터럽트 걸려서 준비큐로 이동될수 있는 것이다.비선점 모드 스케줄링은 현재 실행되고 있는 프로세스가 정상종료 되거나 I/O를 요구하거나 하는 등의 스스로 cpu를 내놓기 전까지 cpu를 뺏기지 않는 스케줄링을 말한다.연습문제9.1 다음의 특성을 갖는 프로세스 집합이 있다고 가정해 보자.프로세스 이름도착시간처리시간A03B15C32D95E**************************17181920FCFSABCDERR q=1ABCDERR q=4ABCDESPNABCDESRTABCDEHRRNABCDE피드백 q=1ABCDE피드백 q=2ABCDE위의 프로세스 집합에 대해 표 9.5와 그림 9.5에서 시행했던 분석을 실시해 보라.프로세스ABCDE도착시간013912서비스 시간(Ts)35255평균FCFS종료시각38101520반환시간(Tr)377686.20Tr/Ts11.43.51.21.61.74RR q=1종료시각71361820반환시간(Tr)7123987.80Tr/Ts2.332.41.51.81.61.93RR q=4종료시각31891920반환시간(Tr)31761088.80Tr/Ts13.4321.62.20SPN종료시각31051520반환시간(Tr)392685.60Tr/Ts11.811.21.61.32SRT종료시각31051520반환시간(Tr)392685.60Tr/Ts11.811.21.61.32HRRN종료시각31051520반환시간(Tr)392685.60Tr/Ts11.811.21.61.32FB q=1종료시각71861920반환 3개의 작업이 대기 중이었다. 이 작업들은 각각 시간 t1,t2,t3에 도착했고 예상되는 실행 시간은 각각 r1,r2,r3이라고 한다. 그림 9.18은 시간에 따라 이들의 응답률이 선형적으로 증가하고 있음을 보이고 있다. 이 예를 이용해서 응답률(response ratio) 스케줄링 기법의 일종인 최소최대 응답률(minimax response ratio) 스케줄링 정책을 구상해 보라. 최소최대 응답률 스케줄링 알고리즘은 주어진 일괄 작업 집합에 대해 (이후에 추가로 진입하는 작업은 신경쓰지 않음) 최대(최악)응답률을 최소화하는 것을 목표로 한다(힌트 : 먼저 제일 나중에 스케줄링할 프로세스를 골라야 한다).t1에 들어온 프로세스를 A라고 하고 t2에 들어온 프로세스를 B라고 하고 t3에 들어온 프로세스를 C라고 한다.그래프의 기울기를 보면 서비스 시간을 예상할 수 있는데 기울기가 가장 큰 B가 서비스 시간이 가장 짧고 그 다음이 B가 짧고 A가 가장 길다는 걸 알수가 있다(서비스 요구시간 => A > C > B ). 그리고 대기시간은 A>B>C 순서이다.여기서 대기시간이 지날수록 서비스 시간이 제일 작은 B의 응답율이 빨리 높아지므로 제일 먼저 실행하고 그다음 C를 실행한다. A를 먼저 해야 할것같기도 했는데 서비스요구 시간이 많기 때문에 대기 시간이 좀 흘러가더라고 응답율이 C보다 빠르게 올라가지 않으므로 B를 실행하고 A를 실행한다.결과적으로 B=>C=>A 순으로 실행한다.9.11 대부분의 라운드 로빈 스케줄링 정책에서 사용하는 시간할당량은 고정되어 있다. 시간할당량이 작은 경우의 장단점과 클 경우의 장단점에 대해서 생각해 보라. 시스템의 유형과 작업의 특성에 따라 시간 할당량의 크고 작음이 어떤 영향을 미치는지 비교해 보라. 시간할당량이 커도 좋고 작아도 좋은그런 시스템이 존재할 수 있는가?시간할당량이 작으면(만약에 1 이라면) 여러 프로세스들이 한번씩 돌아가면서 cpu를 가지고 처리를 할수 있으므로 공평하다고 할 수 있으나 서비스시간이 긴 프로세스는 은 그런 시스템이 있다기 보다는 서비스시간이 길거나 짧거나한 프로세스들이 언제 어떻게 들어오냐에 따라서 틀려지는 거라고 생각한다.9.16 A부터 E까지 5개의 일괄 작업이 어떤 컴퓨터 센터에 말 그대로 정말 동시에 도착하였다. 이들의 실행 예상 시간은 각각 15, 9, 3, 6, 12분이다. 또한 외부에서 지정해준 이들의 우선순위는 각각 6, 3, 7, 9, 4이다(값이 작을수록 우선순위는 높다). 다음의 4가지 스케줄링 정책 각각에 대해 각각에 대해 각 프로세스의 반환 시간과 모든 프로세스들에 대한 평균 반환 시간을 계산하라. 프로세스 간의 문맥교환에 드는 비용은 무시한다. 왜 그러한 계산이 나왔는지도 설명해야 한다. 아래에 있는 각 정책 중 마지막 3개의 정책에서는 한 번에 한 작업이 끝날 때까지 계속 실행된다고 가정한다. 또 모든 작업들은 처리기-중심 프로세스라고 가정한다.a.시간할당량이 1분인 라운드 로빈1427344145A································································································B························································C················D····································E············································································ABCDE평균 반환시간반환시간453414274132.20b.우선순위 스케줄링0 910 2122 3637 3940 45ABCDEABCDE평균 반환시간반환시간21939452127.00c.FCFS(실행순서는 15, 9,3,6,12)0 1516 2425 2728 3334 45ABCDEABCDE평균 반환시간반환시간152427334528.80d.Shortest Job First0 34 910 1819 3031 45ABCDEABCDE평균 반환시간반태가 되면 이 큐에서 스레드 하나를 골라 실행시킨다.예를 들면 은행에서 번호표를 뽑고 기다리다가 고객이 빠지는 창구에 번호표 순서대로 가서 작업하는 것이다.◎그룹 스케줄링 : 서로 관련이 있는 스레드들을 하나의 스레드 그룹으로 묶은 후 이 스레드 그룹을 역시 그룹으로 묶여진 처리기들 상에서 일대일 방식으로 실행 될 수 있도록 하는 방법이다.◎전용 처리기 할당 : 스레드를 어떤 특정 처리기에 고정 할당하는 순간 스케줄링이 끝난다고 볼수 있는 스케줄링으로서 한 응용프로그램에서 그 프로그램을 구성하는 스레드 개수만큼의 처리기가 할당되어 실행이 끝날때까지 처리기가 바뀌지 않는 것이다.◎동적 스케줄링 : 한 프로세스 내의 스레드 개수가 실행 도중 변경될 수 있다.10.4 경성 실시간 태스크와 연성 실시간 태스크의 차이점은 무엇인가?경성 실시간 태스크는 데드라인을 꼭 지켜야 하는 태스크를 말한다. 만약 지키지 않으면 다시 회복 불가능한 손해를 끼치거나 시스템에 치명적인 오류를 발생시키게 된다.하지만 연성 실시간 태스크는 데드라인을 꼭 지켜야하는 의무는 없지만 데드라인을 키져주지 않더라도 큰 문제가 발생하지 않는 태스크이다.10.5 주기적 실시간 태스크와 비주기적 실시간 태스크의 차이점은 무엇인가?비주기적 실시간 태스크는 태스크가 시작시각이나 종료시각 아니면 둘 다에 대한 제약조건을 가지고 있는 것 인데. 주기적 태스크는 얼마동안의 시간 중에 반드시 한번은 실행되어야 한다는 조건이나 실행 후 얼마후 반드시 실행되어야 한다등의 제약이 붙는 것이다.10.7 실시간 스케줄링 알고리즘의 4가지 클래스에 대해서 간략하게 설명하라.◎정적 테이블-기반방식 : 주어진 실시간 태스크들의 시간 제약 조건들을 만족시켜주면서 스케줄링 할 수 있는지의 여부를 실제로 스케줄링하기 전에 정적으로 분석하는 방식이다. 분석을 다하면 분석결과를 표 형태로 나오기 때문 실제 스케줄링 시 어떤 태스크를 어느 시점에 스케줄링 해야 할지 판단할 때 활용할수 있다.◎정적 우선순위-기반 선점 모드방식 : 스케줄링전것을 사용해도 무방하다.◎동적 계획-기반 방식 : 주어진 실시간 태스크들의 스케줄링 가능성 분석을 실행시간에 동적으로 이루어진다. 만약 스케줄링이 진행되고 있는데 새로운 실시간 태스크가 들어오면 새로 도착한 태스크를 포함해서 새로운 스케줄링 가능성 분석이 이루어지는 것이다. 그렇게 해서 가능하면 태스크를 받아들인다. 동적으로 이루어진 스케줄 가능성 분석의 결과는 새로 도착한 실시간 태스크를 언제 스케줄 해야 할지 결정할 때 활용된다.◎동적 최선 방식 : 어떤 스케줄링 가능성 분석도 하지 않는다. 시스템은 모든 태스크들의 데드라인을 만족시켜주기 위해 최선의 노력을 다한다. 만약 스케줄 했는데 데드라인을 놓쳐버린 프로세스가 생긴다면 해동 프로세스를 강제로 종료시켜 버린다.연습문제프로세스도착시간실행시간종료 데드라인A(1)01020A(2)201040····B(1)01050B(2)5010100····C(1)01550C(2)501510010.1 실행 궤적이 표 10.5와 같은 세 개의 주기적 태스크가 있다고 하자 이 태스크들에 대해 그림 10.5와 유사한 스케줄링 다이어그램을 그려보라.표10.5A1 데드라인A2 데드라인B1,C1 데드라인B2,C2 데드라인0*************08090100도착시간, 실행시간, 데드라인A1A2B1B2C1C2고정 우선순위 스케줄링; A의 우선순위가 더 높음A1B1A2C1B2C2고정 우선순위 스케줄링; B의 우선순위가 더 높음B1A1C1A2B2C2A2완료못함종료 데드라인을 사용하면서 이른 데드라인 우선 스케줄링 정책A1B1A2C1B2C2프로세스도착시간실행시간종료 데드라인A1020100B202030C402060D502080E60207010.2 실행궤적이 표 10.6과 같은 5개의 비주기적 태스크가 있다고 하자. 이 태스크들에 대해 그림 10.6과 유사한 스케줄링 다이어그램을 그려보라.표 10.*************0708090100①도착시간ABCDE종료 데드라인BCEDA②도착시간ABCDEServiceACDE종료 데드라인B(놓침)E(완료못함FCFS
복습문제6.2 교착상태가 발생할 수 있는 3가지 필요조건은 무엇인가?상호배제 : 한 순간에 한 프로세스만이 자원을 사용할 수 있다. 즉 한 프로세스에 의해 점유된 자원을 다른 프로세스들이 접근할 수는 없다.점유대기 : 자원을 기다리는 프로세스가 이미 다른 자원을 점유하고 있다.비선점 : 프로세스에 의해 점유된 자원을 다른 프로세스가 강제적으로 빼앗을 수 없다.6.3 교착상태를 실제로 야기하는 4번째 조건은 무엇인가?환형대기 : 프로세스들 간에 닫힌 체인이 존재한다. 즉 자원 할당 그래프에서 환형이 만들어지는 것이다. 닫힌 체인에서 블록된 프로세스가 자원을 점유하고 있는데, 이 자원을 체인 내부의 다른 프로세스가 원하며 대기하고 있다.6.7 교착상태 예방, 회피, 발견의 차이점을 설명하여라.예방은 교착상태 가능성을 없애는 것이다. 이것은 교착상태가 발생하기 위해 필요한 조건들 중에 하나를 시스템 설계할 때 제거하면 가능하다.발견은 자원이 요구될 때 가용하면 항상 할당해 주려는 운영체제에서 사용된다. 이 기법은 주기적으로 현재 시스템의 자원과 프로세스 관계를 분석하여 교착상태 발새 여부를 파악하고 만일 발생했다면 이를 해결하는 방법이다.회피는 자원을 할당할 때 이 할당이 교착상태를 야기 할 가능성이 있는지 조사하고 가능성이 없을 경우에만 할당해주는 방법이다.연습문제6.4 시스템에 5개의 프로세스와 4개의 자원이 존재한다고 가정하자. 다음과 같은 시스템을 상황에서 아래 질문에 답하라.가용자원r1r2r3r42100현재 할당최대 요구필요한 자원processr1r2r3r4r1r2r3r4r1r2r3r4p100120012p220002750p300346656p423544356p503320652a.각 프로세스가 필요한 자원을 계산하여 표를 완성하라.현재 할당최대 요구필요한 자원processr1r2r3r4r1r2r3r4r1r2r3r4p1001200120000p*************p3003466566622p4235443562002p*************b.현재 시스템은 안전 상태인가 아니면 불안정한 상태인가? 그 이유는?안정상태이다. 가용자원을 이용하여 교착상태가 발생하지 않도록 프로세스에게 자원을 할당할수 있는 진행경로가 존재한다.c.현재 시스템은 교착상태인가?교착상태가 아니다.d.만일 교착상태라면 교착상태에 포함되어 있는 프로세스들은 어느 것인가?p1을 제외한 나머지 p2,p3,p4,p5 이다.e.프로세스 p3이 방금 자원(0,1,0,0)을 요청했다고 하자. 이 요청을 허용해도 되는가? 이 요청을 허용하면 시스템의 상태가 어떻게 되는가(안전 상태, 불안정상태, 교착상태)? 만일 교착상태가 된다면 교착상태에 빠진 프로세스들에는 어떤 것이 있는가?허용하면 안된다. 허용하게 되면 교착상태가 되는데 교착상태에 빠지면 프로세스는 p2,p3,p5는 수행이 불가가능하다. 수행가능한 것은 p1과 p4 뿐이다.6.5 6.4절에서 논의되었던 교착상태 발견 알고리즘을 이용하여 다음 시스템 상태를 분석하라.사용가능 자원(Availavle) = (2 1 0 0)요청(request)=200110102100할당 (allocation) =001020010120요청(Q)할당(A)p120010010p210102001p321000120임시벡터 W 는 (2 1 0 0) 이다.W 보다 Q 값이 작은 것은 p3가 있다. 그래서 다시 W 는 W + Q(p3)가 된다.그러면 (2 2 2 0)이 되는데 이제 W 값보다 A 값이 작은 프로세스가 없으므로 여기서 알고리즘이 종료된다.그렇게 되면 p1,p2는 교착상태로 남게 된다.6.6스풀링 시스템은 세 개의 프로세스와 2개의 버퍼로 구성된다(그림6.16참조). 입력 프로세스 I는 외부 데이터를 받아들여 입력 버퍼에 넣고, 사용자 프로세스 P는 입력데이터를 처리하여 출력 데이터로 변환하고, 출력 프로세스 O는 출력 데이터를 출력 버퍼에서 꺼내 소비한다. 버퍼는 같은 크기의 블록들로 구성되며 디스크상에 존재한다. 전체 버퍼 크기는 일정하지만. 프로세스의 처리속도에 따라 입력 버퍼와 출력 버퍼의 크기는 동적으로 변할수 있다. 따라서 통신 프리미티브는 다음의 자원 제약 조건을 만족해야 한다.i +o ≤ max여기서 max = 디스크 상에 최대 블록개수I= 디스크 상에 블록 중에서 입력버퍼로 사용되는 블록개수o= 디스크 상에 블록 중에서 출력버퍼로 사용되는 블록개수한편 각 프로세스는 다음과 같이 동작한다.1. 입력 프로세스는 전달할 데이터가 있고 입력 버퍼에 가용 블록이 있으면 항상 데이터를 입력 버퍼에 넣을 수 있다.2. 사용자 프로세스는 입력 버퍼에 데이터가 있고 출력버퍼에 가용 공간이 있으면, 데이터를 처리하여 출력 버퍼에 넣을 수 있다.3. 출력 버퍼에 데이터가 있으면 출력 프로세스는 항상 그것을 소비할 수 있다.이러한 시스템 환경에서 교착상태가 발생할 수 있음을 보여라.입력프로세스 I 가 입력버퍼에 데이터를 넣는 속도가 사용자 프로세스 P 보다 처리속도가 빨라서 출력버퍼로 옮겨서 출력되기 전에 입력버퍼값이 max 가 되어버리면 가용공간이 없어져서 더 이상 출력이 이루어지지 않는 것이다.예를 들어 max 가 100 이면 i 가 100이 되면 o 에 가용공간이 없어져서 넘어갈 수가 없는 것이다.그러면 주지도 못하고 받지도 못하는 교착상태가 되는 것이다.6.10 시스템에 150개의 메모리 유닛이 존재하며, 3개의 프로세스가 다음과 같이 할당받았다고 가정하자.프로세스최대 요구현재 할당170452606034015다음의 요청이 도착했을 때 은행원 알고리즘을 적용해 보자. 만일 요청을 받아들여도 안정 상태를 유지한다면 모든 요청이 완료되는 과정을 보여라. 만일 불안정상태로 전이한다면 그 원인을 할당 테이블로 설명하라.프로세스최대 요구현재 할당필요한 메모리1**************************사용가능 메모리0프로세스최대 요구현재 할당필요한 메모리1*************015254603525사용가능 메모리60프로세스최대 요구현재 할당필요한 메모리*************15254603525사용가능 메모리105a. 4번째 프로세스가 최대 60, 초기에 25개의 메모리 유닛을 요구한다.프로세스최대 요구현재 할당필요한 메모리*************004602535사용가능 메모리