4장. 가상메모리관리1. 가상 메모리(virtual memory)의 개념을 설명하고, 이의 장점 및 단점을 기술하시오.개념 : 주기억장치의 이용 가능한 기억 공간보다 훨씬 큰 주소를 지정 할 수 있다. 하나의 프로세스 전체가 한 번에 주기억장치 내에 존재하지 않고 일부만 있어도 수행하게 하는 방법을 제공한다.장점 : 사용자는 실제 주소 공간의 크기에 구애 받지 않고 보다 큰 가상 주소 공간상에서 프로그래밍을 작성 할 수 있으며, 또한 주기억장치보다 크기가 큰 프로세스를 수행시킬 수 있다.단점 : 매우 빠르고 일정한 응답시간이 요구되는 내장형 시스템이나 특정 목적을 지닌 컴퓨터 시스템에서는 적합하지 않은 기법이다.2. 주어진 기억장치 용량 이상을 필요로 하는 프로그램을 수행할 수 있는 방법을 제시하고, 그것들에 대해서 설명하시오.초창기 기억 장치는 용량이 작아 실행될 프로그램이 주 기억장치보다 용량이 크면 실행이 불가능하였으나, 하나의 프로그램 전체가 한 번에 주기억장치 내에 존재하지 않고 일부만 있어도 수행하게 하는 방법인 가상 메모리 기법을 이용함으로써 주 기억장치보다 용량이 크 프로그램도 수행 가능하다. 즉, 가상 메모리를 사용하면 사용자는 실제 주소 공간의 크기에 구애 받지 않고 보다 큰 가상 주소 공간상에서 프로그래밍을 할 수 있을 뿐만 아니라, 주기억장치보다 크기가 큰 프로세스를 수행시킬 수 있다.3. 프로세스의 가상 주소 공간을 실제 주소 공간과 분리시키는 것이 유익한 이유를 밝히시 오.수행 중인 프로세스가 참조하는 주소를 가상 주소(virtual address)라 하고, 주억장치상의 이용할 수 있는 주소를 실제 주소(real address)라고 한다. 프로세스의 가상 주소 공간을 실제 주소 공간과 분리시킴으로써 모든 프로세스가 가지는 가상 주소 공간상의 연속된 주소들은 실기억 공간에서도 반드시 연속적일 필요가 없다. 또한, 사용자는 프로그램 또는 데이터가 주기억장치 내의 어디에 위치하는가에 관계할 필요가 없게 되게 된다.4. 가상 주소와 실제 주소직접 사상 : 직접 사상과 연관 사상의 장점을 이용하여 직접과 연관을 혼용하는 기법6. 기억장치 속에 기억된 페이지 테이블을 가진 페이징(paging) 시스템을 생각하자.⑴ 만약 기억장치 접근이 1.2μ sec 걸린다면 페이지로 된 기억장치의 접근은 얼마 나걸릴까?⑵ 만약 8개의 연관 레지스터(associative register)를 더하고 모든 페이지 테이블 접근의 35%가 이 연관 레지스터에서 발견된다면 실제 기억장치 접근 시간은 얼마인가? 단, 연 관 레지스터에서 어떤 페이지 테이블 항목을 찾아내는데, 만약 그것이 그곳에 있다면 시 간이 소요되지 않는다고 가정한다.⑴ “기억장치 속에 데이터 접근 시간 = 페이지 테이블 접근 시간 + 기억장치 접근 시간”이고 페이지 테이블이 기억장치 속에 있기 때문에기억장치 속에 데이터 접근 시간 = 1.2μ sec(페이지 테이블 접근 시간) + 1.2μ sec(기억장치 접근 시간) = 2.4μ sec(2) 연관 기억장치에 데이터가 있을 경우에는 페이지 테이블 접근할 필요가 없기 때문에 “기억장치 속에 데이터 접근 시간 = 기억장치 접근 시간”이고, 연관 기억장치에 데이터가 없을 경우에는 페이지 테이블 접근 시간이 추가적으로 필요하므로 “기억장치 속에 데이터 접근 시간 = 페이지 테이블 접근 시간 + 기억장치 접근 시간”이다. 35%가 연관 기억장치 데이터가 있고, 65%가 연관 기억장치에 데이터가 없기 때문에 기억장치 내에 데이터 접근 시간은 다음과 같다.기억장치 속에 데이터 접근 시간 = (연관기억장치 접근 시간 × 0.35) + (페이지 테이블 접근 시간 + 기억장치 접근 시간) × 0.65= (1.2μ sec × 0.35) + ( 1.2μ sec + 1.2μ sec ) × 0.65 = 0.42μ sec + (2.4μ sec) × 0.65 = 0.42μ sec + 1.56μ sec = 1.98μ sec7. 페이지와 세그먼트의 차이점을 설명하시오.페이지 : 실제 기억장치를 일정한 고정된 크기 단위(페이지)로 프로그램을 는 기법이다.② 연관 사상(associative mapping) : 주기억장치보다 훨씬 빠른 접근 시간을 가지고 있는 연관기억장치에 세그먼트 사상 테이블 전체를 넣는 기법③ 연관/직접 사상 : 직접 사상과 연관 사상의 장점을 이용하여 직접과 연관을 혼용하는 방법9.세그먼테이션 기법을 쓰는 가상 메모리 시스템에서 기억장치 보호(storage protection)가 어떻게 이루어지는가를 설명하시오.세그먼테이션 기법에서 모든 세그먼트를 무제한으로 접근하는 것은 바람직하지 못하다. 세그먼트 기법에서 기억장치를 보호하기 위해 가장 일반적으로 사용되는 방법은 접근 제어 테이블(access control table)을 이용하는 것이다. 접근 제어 테이블은 임의의 세그먼트에 대해 판독, 기록, 수행, 첨가 등의 접근 형태를 이용하여 접근을 제어함으로써 기억장치를 보호한다.10. 세그먼테이션과 페이징을 혼용 하는 시스템을 설계하고 이에 대한 알고리즘을 수집하시 오.하나의 세그먼트를 정수 배의 페이지로 다시 분할하는 세그먼트/페이징 혼용 기법이 있다. 세그먼트/페이징 혼용 기법에서 가상 주소를 실제 주소로 변환하기 위해 먼저 연관 사상 테이블에를 검색한다. 만약 가상 주소에 대응하는 실제 주소 값이 있으면 주소 변화는 종료되나, 없으면 세그먼트 사상 테이블을 검색하고 그 이후에 해당 세그먼트의 대한 페이지 사상 테이블을 검색하여 실주소로 변환하는 과정을 수행한다.11. 가상 메모리 시스템에서 기억장치 관리 기법들인 반입 기법, 배치 기법, 교체 기법의 목적을 논하시오.① 반입 기법 : 반입 기법은 인출 기법이라고도 하며 주기억장치에 적재할 다음 프로그램이나 데이터를 언제 가져올 것인가를 결정하는 기법이며, 요구 인출 기법과 예상 인출 기법이 있다.② 배치 기법 : 새로 인출된 데이터나 프로그램을 주기억장치의 어디에 위치시킬 것인가를 결정하는 기법이다.③ 교체 기법 : 새로 들어온 프로그램이 들어갈 장소를 마련하기 위해서 어떤 프로그램 및 어떤 데이터를 제거할 것인가를 결정하는 을 이용한 기억장치 경영 알고리즘은 최적 적합과 최초 적합, 최악 적합을 생각할 수 있다. 최악 적합은 작업(job)에 의하여 발견된 분할 중 가장 큰 것을 할당하는 알고리즘이다.⑴ 각각의 특성을 제시하시오.⑵ 기대되는 성능(performance)에 대한 의견을 제시하시오.⑶ 최악 적합이 최적 적합이나 최초 적합보다 나은 경우는 작업의 순서가 어떤 경우 인지 를 보이시오.⑴ ① 최적 적합 : 작업을 적재함에 있어, 그것을 수용할 수 있는 주기억장치의 첫 번째 유용한 공백을 우선적으로 선택하는 방법② 최초 적합 : 어떤 작업을 적재할 기억 공간을 선택함에 있어, 그 작업에 가장 적합 한 공간을 선택하는 방법③ 최악 적합 : 프로그램을 주기억장치 내에서 가장 알맞지 않은 공백, 즉 가장 큰 공 백에 배치하는 방법⑵ 작업에 가장 적합한 공간을 선택하는 방법인 최적 적합이 가장 합리적인 방법이나. 최 초적합도 작업에 대한 분할선택 결정을 빨리 내릴 수 있다는 점에서 좋은 정책이라 할 수 있다. 최악 적합도 작은 크기의 공백을 만들지 않는다는 이유에서 장점을 가지고 있 다.⑶ 작업 순서에서 작업이 크기가 큰 순서로 있으면서 빈 공간의 크기도 큰 순서대로 있을 경우⑷ 작업 순서에서 작업이 크기가 작은 순서로 있으나 빈 공간의 크기는 큰 순서대로 있을 경우14. SJF, 최적교체, LRU, 각각에 대한 시뮬레이션 모델을 구축하고 수행한 후 오버헤드를 비교 하시오.SJF(Shortest Job First)은 CPU 스케줄링 기법으로 본 문제에서 제외시킨다.주기억장치는 4개의 페이지 프레임(page frame)이 있고, 페이지 참조열은 다음과 같다고 가정한다.페이지 참조열 : 0, 1, 2, 3, 1, 0, 4, 5, 1, 2, 3, 4① 최적(optimal) :페이지 부재율 = 7번 , 미스율(miss ratio)= 7/12 = 58.3 %, 히트율(hit ratio) = 41.7%참조열012310451234페이지프레임0**************************2222LRU : 페이지 부재 횟수 : 10번참조열*************5210125페이지프레임0000000****************************************************335555566660000부재FFFFFFFFFF② FIFO : 페이지 부재 횟수 : 14번참조열*************5210125페이지프레임**************************555556666*************11555*************00011111부재FFFFFFFFFFFFFF③ 최적(optimal) : 페이지 부재 횟수 : 8번참조열*************5210125페이지프레임000000****************************************************3345555555555555부재FFFFFFFF④ LFU : 페이지 부재 횟수 : 9번참조열*************5210125페이지프레임00000000000000**************************2224*************33335555565555555부재FFFFFFFFF16. 스래싱(thrashing)과 작업세트(working set)에 대해서 논하시오.페이지 부재가 계속적으로 발생되어 프로세스가 수행되는 시간보다 페이지 교체에 소비되는 시간이 더 많아지는 경우를 쓰래싱(thrashing)이라고 한다. 쓰래싱이 발생하면 중앙처리장치의 효율이 급격히 감소하며 이를 해결하는 방법이 작업세트(working set)이다. 작업세트란 프로세스에 의해 자주 참조되는 페이지들의 집합체를 말한다. 수행 중인 프로그램이 주기억장치 안에 작업세트를 유지시키고 있다면 매우 효율적으로 실행될 수 있을 것이다.17. 좋은 구역성이 나타나도록 프로그램을 구성하는 프로그래머는 프로그램의 실행에 있어 서 효율성의 현저한 증진을 기대할 수 있다. 프로그래머가 구역성을 높이기 위해 사용할 수 있는 기법을 열거하시오. 특히 고급 언어에서의 어떤 면을 사용해야 하고, 어떤 면을 피
2장. 프로세스와 스레드 관리1. 프로세스에 대한 정의를 기술하고 공인된 정의가 없는 이유를 쓰시오.CPU에 의해서 실행되거나 실행준비 중에 있는 프로그램을 프로세스라고 부른다. 또한 프로세스는 OS의 상태에 따라 적절하게 정의 및 구현되며, PCB를 지닌 프로그램 또는 프로그램 카운트를 지닌 프로그램 등으로 정의하기도 한다.2. 다중 프로세스의 경우에 한 작업을 수행하다가 이를 중단하고 다른 작업을 수행하려면, 모든 작업들이 주기억장치에 적재되어 있다고 해도 추가적인 과정이 필요하다.(1) 이와 같이 수행되는 프로세스를 바꾸려고 할 때 변경하거나 또는 기억하고 있어야 할 자료는 무엇인가?- PCB, 준비완료리스트(큐), 대기리스트(큐)(2) 이러한 작업을 하는 데 도움이 될 수 있는 하드웨어는 무엇인가?- 주기억장치, 중앙처리장치, 스풀러, 디스크(3) 다중 프로그래밍에서 수행되는 프로세스를 바꾸어야 하는 경우는 어떠한 일이 발생할 때인가?- 수행되고 있는 프로세스보다 우선순위가 높은 프로세스가 들어왔을 때, 또는 수행중인 프로세스의 할당시간이 완료되었을 때 인터럽트가 발생하여 PC(Program Counter)가 바뀔때.3. 프로세스의 상태 변환은 다음과 같은 프로세스의 상태 전이도에 의해서 설명될 수 있다.(1) 어떤 경우에 1, 2, 3과 4로 표시된 상태 변화가 일어나는가?- 1: 디스패치; 준비완료 리스트에 있는 프로세스중 하나의 프로세스에게 CPU를 할당함- 2 :할당시간완료; 프로세스에게 주어진 할당시간을 모두 사용함- 3: Block; 실행 중 입출력의 요청 또는 자원 할당 요청 등으로 대기 상태가 됨.- 4: Wake-up; I/O가 끝나고 대기 큐에서 기다리던 프로세스가 준비완료 큐의 끝에 들어 감(2) 전체적으로 볼 때에 한 프로세스가 상태 변화를 일으키면 이에 따라서 다른 프로세스의 상태도 변할 수 있다. 한 프로세스가 3의 상태 변화를 일으켰을 때 어떠한 경우 어떤 프로세스가 즉시 1의 상태를 일으키는가?- 실행중인 프로세스가 I/O 과 같은 원인 → 결과의 상태 변화가 일어나는가?①2→1 ②3→4 ③4→1- ① 실행 중인 프로세스의 할당시간이 끝난 후 준비완료 큐의 첫째 프로세스가 CPU할당 받아 실행시작- ②실행 중인 프로세스의 I/O 요청으로 대기상태로 되었다가 I/O가 끝난 후 준비완료리스트의 끝으로 들어감- ③준비완료 리스트에 들어있던 프로세스가 수행할 수 있는 순서가 되어 CPU를 할당 받아 실행됨4. 스케줄링 정책과 스케줄링 기법을 구별하여 설명하시오.스케줄링의 목적 달성을 위한 내용들(공정성, 처리율의 최대화, 응답시간의 최소화 등) 그 목적들을 실현하기 위한 전략(방법)고려사항 : I/O위주 프로세스인가, CPU위주의 프로세스인가, 프로세스가 일괄처리 형인가, 대화형인가 등에 따라 적응적인 실현방법 결정5. 한 프로세스가 매우 많은 페이지 부재를 발생시키고 있음이 밝혀졌다. 그 프로세스의우선순위를 높여 주는 것에 대한 찬·반의 의견을 모두 기술하시오.-찬성의견 : 오랫동안 시스템에서 대기하는 프로세스들의 우선순위를 점진적으로 증가시켜줌으로써 무한대기하는 문제점을 해결해 줄 수 있다. 또한 페이지 부재가 자주 발생함은 자주참조 된다는 의미이고, 자주 참조되는 프로세스들은 작업세트를 주기억장치에 확보하여 우선권을 주어 페이지 부재를 막을 수 있다-반대의견 : 낮은 순위에서 올라온 작업은 중요한 작업은 아니지만 무한대기를 없애기 위해서 우선순위를 높인 것인데, 이렇게 계속적으로 우선순위가 올라온 작업들로 인해 중요한 작업의 우선순위가 뒤로 밀리는 경우가 발생 할 수 있다. (자주 참조되는 프로세스들은 작업세트를 주기억장치에 확보하여 우선권을 주어 페이지 부재를 막을 수 있다)6. 다음 각 물음에 대한 결정은 어떤 단계의 스케줄러가 하는가?1) 중앙처리장치가 사용 가능해질 때 중앙처리장치를 어느 프로세스에 할당할 것인가?-하위단계 스케줄러2) 디스크에 적재된 일괄 처리 작업 중 다음에 시작할 작업은 어느 작업인가?-상위단계 스케줄러3) 중앙처리장치에 부하가 많아질 때 어느 프로세스트를 처리할 수 있는가? 선점 프로세스와 비 선점 프로세스의 예를 드시오.- 선점방식 : 한 프로세스가 CPU를 차지하고 있을 때 다른 프로세스가 현재 수행중인 프로세스를 중지시키고 자신이 CPU를 차지할 수 있다- 비 선점방식 : 한 프로세스가 CPU를 할당받으면 그 프로세스의 수행이 끝날 때 까지 CPU를 내놓지 않는 방법예) 선점 : 높은 우선순위를 가진 프로세스들이 빠른 처리를 요구하는 시스템에 유용함 (대화식 시분할 시스템에서는 선점 방법이 유용함)비 선점 : 인터럽트 처리가 불가능함(실시간 시스템에서는 비 선점 스케줄링은 맞지 않음)8. 선점(Preemptive) 스케줄링과 비 선점(non-preemptive) 스케줄링을 정의하고, 엄격한 비 선점 스케줄링을 잘 사용하지 않는 이유를 기술하시오.- 선점 스케줄링한 프로세스가 중앙처리장치를 차지하고 있을 때 다른 프로세스가 현재 수행중인 프로세스를 중지시키고 그 프로세스가 중앙처리장치를 차지할 수 있다.실행도중 CPU를 빼앗아 많은 오버헤드 초래하며, 응답시간을 예측하기 어렵다.- 비 선점 스케줄링한 프로세스가 CPU를 사용하고 있으면 그 프로세스의 작업이 완료되기 전까지는 다른 프로세스가 CPU를 점유 할 수 없다.모든 프로세스들에 대한 대우는 공정하며, 응답시간 예측이 용이함간단한 요청에 빠른 응답을 원하는 대화식 시분할 시스템에 적합하지 않고, 작업이 짧은 작업을 오랫동안 기다리게 하는 경우가 발생할 수 있기 때문임.9. 다음 각각에 대해 맞는지 틀리는지를 구분하고 각각을 설명하시오.(1) 프로세스가 중앙처리장치를 강제로 탈취할 수 없으면 이는 비 선점 스케줄링 기법이다.- 맞다; 반대로 강제로 빼앗는다면 선점 스케줄링 기법임(2) 실시간 시스템은 보통 선점 중앙처리장치 스케줄링을 사용한다.- 맞다; 실시간 시스템은 짧은 시간을 요구하는 방법이므로 선점 형을 써야함.(3) 시분할 시스템은 보통 비 선점 중앙처리장치 스케줄링을 사용한다.- 틀림; 시간대를 적당한 크기로 나눠서하는 방법으로써 선점 스측이 가능하며, 선점 형 스케줄링은 예측이 불 가능함(5) 우선순위 기법의 한 가지 약점은 시스템은 충실히 우선순위를 따르지만 실제로 그 우 선순위는 별로 의미가 없다는 점이다.- 틀림; 우선순위가 높은 순서대로 처리하며, 우선순위는 그 프로세스의 특성 및 종류에 따라 다르게 부여됨.10. FCFS 기법이 대화식 사용자에게 적당하지 못한 이유를 말하시오.비선점 스케줄링 방식으로 프로세스들이 도착한 시간에 따라 준비완료 리스트에 있다가 순서대로 디스패치 된다. 이것은 일괄처리 시스템에서 많이 사용하는 작업스케줄링 방법이며, 대화식 사용자들에게 빠른 응답 시간을 보장해 주지 못한다.11. 라운드 로빈 기법에 대해서 설명하시오.- 라운드 로빈 스케줄링(Round Robin Scheduling)은 선점 형 스케줄링의 하나로서, 시간 단위(Time Quantum)로 CPU를 할당하는 방식의 CPU 스케줄링 알고리즘이다. 보통 시간 단위는 10ms ~ 100ms정도이다. 시간 단위동안 수행한 프로세스는 준비 큐의 끝으로 밀려나게 된다. 문맥 전환의 오버헤드가 큰 반면, 응답시간이 짧아지는 장점이 있어 실시간 시스템에 유리하다.12. 시간 할당량을 결정하는 일은 복잡하고 중요한 과제이다. 프로세스 간 평균 문맥 교환 시간이 s이고 입출력 위주의 작업이 입출력 요구가 실행하기 전까지 중앙처리장치를 사용하는 평균 시간이 t라고 가정하자(t>s). 다음과 같이 할당량을 결정할 때의 영향을 각각 기술하시오(할당량 : q).(1) q=무한대 -> 무한대기 상태가 됨(2) q=0보다 약간 큰 수 -> 프로세스단위가 작아서 문맥 교환이 자주 일어남(3) q=s -> 프로세스처리 도중에 문맥 교환이 일어날 수 있으며, 문맥 교환에 과다 시간 이 소비되어 처리율이 낮아진다.(4) s 할당시간이 모자라거나, 아니면 남는 현상이 일어남(6) q>t -> 프로세스를 조각으로 나누어 처리해야 됨13. 다단계 큐 스케줄링 알고리즘의 특징은 무엇인가?- 작업들을 여러 종류의 그룹으로 나누어 여러 개에게 높은 우선순위를 부여하는 방법임. 그룹화 된 작업들은 각각의 준비완료 리스트(큐)에 넣어서 각 큐의 독자적인 스케줄링 알고리즘에 따라서 CPU를 할당 받는다. - 일괄 처리 작업이 실행 중일지라도 상위 단계 큐에 작업이 들어오면 일괄 처리 작업은 선점 당한다.14. 프로세스p _{1} ,p _{2} ,p _{3} ,p _{4}에 대한 각 대시시간은 8, 8, 6, 15이며, 각 버스트 시간은 8, 2, 3, 5일 때 HRN 스케줄링 기법에 의한 각 프로세스의 CPU 할당 우선순위는?- 우선순위 p2>p4>p3>p1p1의 응답시간 (8+8)/8=2p2의 응답시간 (8+2)/2=5p3의 응답시간 (6+3)/3=3p4의 응답시간 (15+5)/5=415. SRT기법의 단점을 논하고, 성능을 높이기 위해서는 이 기법을 어떻게 변형해야 하겠는가?새로 도착한 프로세스를 포함하여 처리가 완료되는데 가장 짧은 시간이 소요되는 프로세스를 먼저 수행시킨다. 선점될 수 있으며 시분할시스템에 유용하다-단점1. SRT는 SJF보다 더 많은 비용이 소요됨2. 긴 작업들은 SJF보다 평균대기 시간이 길어짐3. SRT는 각 프로세스가 서비스를 받을 시간의 기록이 유지관리 되어야 하기 때문에 오버헤드가 늘어난다.-기법변형수행 중인 작업을 끝내는데 소요되는 시간이 임계치보다 적다면 시스템은 중간에 그 작업을 중지하지 않고 완료될 때까지 수행하게 한다.16. 다단계 피드백 큐가 다음 각 스케줄링 목적을 달성하는 방법을 설명하시오.(1) 짧은 작업을 선호한다.- 전면작업 프로세스들이 후면작업 프로세스보다도 높은 우선순위를 가진다.(2) 입출력 위주의 작업을 선호하며 입출력장치의 활용도를 높인다.- 입출력 위주의 프로세스는 매우 높은 우선순위를 가지고 네트워크에 들어가서 중앙처리 장치를 빨리 차지하게 한다.(3) 작업의 성격을 가능한 빠른 시간 내에 알아내어 그 성격에 알맞게 관리한다.- ①프로세스가 지난번 큐잉 네트워크를 통과하는 데 걸린 시간을 기록해두고 관리 활용 하여 해결한다. ②할당시.
3장. 기억장치관리1. 다중 프로그래밍의 발전동기에 대해서 논하시오. 프로그램과 기계의 어떤 특성 때문에 다중 프로그래밍이 바람직하게 되었으며, 또 어떤 경우에 다중 프로그래밍이 바람직하지 않은가?다수의 사용자가 동시에 시스템 자원을 요구할 수 있도록 구현하는 것이 다중프로그래밍 시스템으로서, CPU의 이용도와 시스템 처리량(throughput)을 크게 늘이고 최대한 이용하기 위해서 주기억장치 내부에 여러 개의 작업이 공존하도록 해야 한다. 그러나 주기억장치는 용량이 제한되어 있고 값이 비싸다는 단점이 있다. 또한 다중프로그래밍의 경우 단일 사용자 시스템보다 더 많은 기억장치를 필요로 한다.2. 계층 구조의 기억장치 시스템에서 프로그램과 데이터를 계층 구조의 각 단계 사이에서 이동시키는 데 어느 정도의 노력이 소요된다. 이러한 추가 노력에도 불구하고 왜 이러한 시스템을 사용하는지 검토하시오기억장치 단계의 증가로 인한 단계간의 왕복에 소요되는 오버헤드는 캐시의 빠른 처리 속도로 인하여 얻을 수 있는 성능의 향상에 비하여 상대적으로 적기 때문에, 전체적인 시스템의 성능 증대를 위하여 캐시 개념을 도입한 것이다.3. 논리적 주소와 실제 주소의 다른 점을 기술하시오.중앙처리장치가 생성하는 주소를 논리적 주소라 하며, 기억장치가 취급하는 주소를 물리적 (실제)주소라 한다. 이러한 경우에 논리적 주소를 가상 주소(virtual address)라 한다. 프로그램에 의해 생성된 모든 논리 주소의 집합을 논리적 주소 공간이라 하고, 이 논리적 주소에 상응하는 모든 물리적 주소의 집합을 물리적 주소 공간이라 한다.4. 어떤 경우에 오버레이가 유용한가? 어느 때에 주기억장치의 일부분이 오버레이 되는가? 오버레이는 프로그램 개발 시 어떤 영향을 미치며, 오버레이는 프로그램 수정 가능성에 어떤 영향을 끼치는가?사용자 프로그램의 크기는 주기억장치의 용량보다 클 수 없으나, 오버레이(overlay) 기법에 의해서 주기억장치보다 더 큰 프로그램의 실행이 가능하다.오버레이는 프로그래머가 한정된 주기억장치를 확장하여 사용할 수 있는 방법을 제공하는 것이지만, 사용자가 직접 오버레이 작업을 하는 것은 매우 어려운 일이고 시간도 많이 소요될 뿐만 아니라 복잡한 오버레이 구조를 가진 프로그램은 수정하기도 어렵다.5. 배치 기법은 새로 들어온 프로그램과 데이터를 주기억장치의 어디에 넣을 것인가를 결정 한다. 실행되기를 기다리고 있는 작업의 기억장치 필요조건이 곧바로 충족될 수 있다고 가정할 때, 그 작업을 적재하여 즉시 실행시킬 수 있는 배치전략에 대해 기술 하시오.기억장소 배치기법은 아래와 같이 최초적합, 최적적합, 최악적합 등 세 가지 기법으로 나누어 볼 수 있다.① 최초적합(first-fit):들어온 작업을 주기억장치 내에 수용할 수 있는 첫번째 공백에 배치하는 기법② 최적적합(best-fit):들어온 작업을 주기억장치 내의 공백 중 가장 알맞은 공백에 배치하는 기법③ 최악적합(worst-fit):주기억장치 내에 가장 큰 공백에 배치하는 기법6. 단편화(fragmentation)에 대하여 설명하고, 이것을 극복하는 방법은 무엇인가?고정 분할 다중 프로그래밍 시스템에서 단편화는 사용자 작업의 크기가 분할에 정확히 맞지 않거나, 또는 분할이 너무 작아서 대기 중인 어떤 작업도 이 분할에 적재될 수 없는 경우에 발생한다. 이러한 경우에 그 분할은 사용되지 않은 상태로 남아 있게 됨으로써 단편화가 발생하게 된다.7. 내부 단편화(internal fragmentation)와 외부 단편화(external fragmentation)사이의 차이 점을 설명하고, 어떻게 다른지 설명하시오.에서,100K의 사용자 기억장치 영역을 가지는 시스템의 크기가 각각 10K, 20K, 30K, 40K인 네 개의 분할을 가진다고 하자.이 경우 작업들이 분할을 점유하면, 사용되지 않는 기억공간이 18K인 반면 13K인 작업4를 적재할 수 없게 된다. 여기에서 작업3과 작업1이 각각 적재된 분할3과 분할4에서 각각 사용되지 않은 비사용 부분 5K와 3K가 발생할 때 이를 내부 단편화(internal fragmentation)라 하고, 분할1과 같이 어떤 분할이 사용되지 않고 이용 가능하지만 대기 중인 작업에게는 너무 작아서 사용할 수 없을 때 발생하는 현상을 외부 단편화(external fragmentation)라고 한다. 이와 같이 사용될 수 없는 여분의 기억 공간을 통칭하여 기억장치의 단편(fragment)이라고 한다.8. 운영체제의 발전은 급진적인 방법에 의하지 않고 진화적인 방법에 의해 이루어져 왔다. 다음의 각 변이에 대해서 운영체제 설계자가 새로운 유형의 시스템을 만들어내게 된 주 동기를 기술하시오.(1) 단일 사용자 시스템 ->다중 프로그래밍단일 사용자 시스템은 사용자가 하나의 프로세스만 사용이 가능한 시스템이다.따라서 사용자가 하나의 프로세스를 처리하다가 다른 프로세스의 처리를 필요로 할 때의 불편함을 줄이기 위해 다중 프로그래밍 시스템을 고안하게 되었다.
5장. 디스크스케줄링과 파일 시스템2. 다중 프로그래밍의 정도가 디스크 스케줄링에 대한 필요성에 어떠한 영향을 미치는가?다중 프로그래밍 시스템에서의 모든 프로세스들은 자신에 관련된 작업이 실제 디스크가 처리할 수 있는 능력보다 더 빨리 처리되기를 요구한다. 디스크 스케줄링을 통해 탐색시간을 최소화 함으로써 다중 프로그래밍의 프로세스들이 처리 시간을 최소화 시킬 수 있다.4. 번호가 0부터 199인 200개의 트랙을 가진 유동 헤드 디스크가 있다. 헤드는 현재 트랙 143을 서비스하고 있고 조금 전에 트랙 125의 요청을 끝냈다. 만일 요청 큐가 FCFS 순으로 147, 91, 177, 94, 150, 102, 175, 130과 같을 때 다음과 같은 스케줄링 알고리즘에서 이 요청들을 만족시키기 위해 필요한 헤드의 총 운동은 얼마인가?① FCFS헤드위치143*************102175130총 이동거리이동거리045*************451② SSTF헤드위치1431*************91175177총 이동거리이동거리*************52③ SCAN헤드위치1431*************91301029491총 이동거리이동거리0*************152④ C-SCAN헤드위치1431*************909194102130총 이동거리이동거리0*************28283856. SCAN이 SSTF보다 응답 시간의 편차가 적은 이유는?SSTF는 안쪽이나 바깥쪽의 트랙보다는 가운데 트랙이 더 많은 서비스를 받을 수 있기 때문에 응답시간에 큰 편차가 생길 수 있으나 이에 대한 단점을 보안하는 스케줄링 기법이 SCAN이다. SCAN은 대기 큐의 동적인 특성을 효율적으로 반영한 것으로서, 기본적으로 SSTF와 같은 방법으로 운영되지만 차이점은 ‘진행 방향’상의 가장 짧은 거리에 있는 요청을 서비스하는 기법이다.8. 어떤 면에서 SCAN이 SSTF보다 더 공평한가? 어떤 면에서 CSCAN이 SCAN보다 더 공평한가?우선 SSTF는 안쪽이나 바깥쪽의 트랙보다는 가운데 트랙이 더 많은 서비스를 받을 수 있기 때문에 응답시간에 큰 편차가 생길 수 있으며, 기아현상이 발생될 수 있으나 SCAN은 SSTF 방법의 헤드가 높은 편차를 갖고 움직이는 단점이 보완되고 기아현상이 발생되지 않아서 SSTF 보다 공평하다. 그리고C-SCAN(Circular SCAN)은 한쪽 방향으로 헤드를 이동하면서 ‘진행 방향’상의 가장 짧은 거리에 있는 요청을 처리하지만, SCAN처럼 한쪽 끝에 다다르면 반대 방향으로 헤드를 이동하는 것이 아니라 다시 처음 시작 방향으로 이동하여 서비스하는 기법으로 SCAN 비해 가장 안쪽과 바깥쪽 트랙의 차별 대우를 개선하였고, 대기 시간의 편차가 매우 작아 SCAN 보다 공평하다.10. 부하가 매우 적은 상태에서 이 장에서 논의된 모든 디스크 스케줄링 기법들은 실질적으로 하나의 동일한 기법이 된다. 어떤 기법인가? 그 이유는 무엇인가?부하가 적은 상태일 경우에는 SCAN 기법이 가장 좋은 결과를 가지며, 부하가 많은 경우에는 C-SCAN 방법이 가장 좋은 결과를 가진다. SCAN 기법은 가장 안쪽과 바깥쪽 트랙의 차별 대우를 최소화하고 응답 기간을 편차를 줄이는 스케줄링 기법이다.12. 불연속 할당이 연속 할당보다 더 좋은 점이 있다면 무엇인지 설명하시오.연속 할당 방법의 문제점은 사용자가 새로운 파일을 생성하기 위해서는 필요한 공간의 크기를 미리 명시하여야 하고, 만약 원하는 만큼의 기억 공간이 확보되지 않으면 그 파일은 생성되지 못한다. 불연속 할당은 이러한 연속 할당의 문제점을 해결하는 방법으로 불연속 할당이 연속 할당 보다 더 좋은 할당 방법이다.14.블로킹(blocking)에 대해서 설명하시오.하나 이상의 레코드를 묶어서 하나의 블록으로 하는 것이 블로킹일고 한다. 물리적 레코드가 단 하나의 논리적 레코드로 구성되어 있을 때 이 파일을 블로킹되지 않은 레코드(unblocked record)로 구성된 파일이라 하고, 반면 여러 개의 논리적 레코드가 하나의 물리적 레코드를 구성하면 이 파일을 블로킹된 레코드(blocked record)로 구성된 파일이라 한다. 블로킹 하는 이유는 입출력 시간(입출력 횟수)을 줄이기 위해서 있다.16. 연속 할당, 연결 리스트 그리고 색인 블럭의 세 가지 할당 방법을 제공하는 시스템이 있다. 파일에 대하여 특정 기법을 사용하는 기준은 무엇인가?파일을 저장하기 위하여 공간 할당하는 문제는 사용자의 수, 각 사용자 소유의 평균 파일 수 및 사용자의 평균 사용 시간 등 여러 가지 요소가 고려되어서 적절한 할당 방법을 선택해야한다.18. 파일의 보호 기법을 설명하고, 그중 가장 합리적인 보호기법은 무엇인지 설명하시오.파일의 보호는 자격 없는 사용자들이 무단으로 파일에 접근할 수 없도록 하기 위해 파일 소유자가 보호장치를 만들어 놓는 것을 말한다. 보호를 위한 방법에는 파일 이름(naming), 암호(password), 접근 제어(access control) 등이 있다. 파일 이름은 다른 사용자 파일의 이름을 알 수 없고, 그 이름을 추측하기도 어렵다는 가정에 있으며, 암호는 보호에 관한 모든 정보가 파일 시스템에 들어 있으면 쉽게 노출될 수 있으며, 불법 사용자가 바뀐 암호를 사용할 수 있다. 접근 제어는 사용자에 따라 접근이 가능한 유형을 다르게 명시함으로써 보다 합리적인 보호 기법이라고 할 수 있다.20. 파일시스템의 예를 들고 그 각각에 대한 특징을 설명하시오① FAT(File Allocation Table)마이크로소프트사에서 개발한 파일 시스템으로 FAT12, FAT32가 있다. FAT32는 최대 2TB까지 지원하며 파일의 이름도 256문자까지 지원하고 있다. FAT32는 Windows 95, 98, Me에서 제공되는 파일 시스템이다.
7장 연습문제1. 교착 상태의 정의를 내리시오.둘 이상의 프로세스가 서로 다른 프로세스가 요구하는 자원을 가지고 잇으면서 상대방 프로세스가 가지고 있는 자원을 요구하는 경우를 말한다.5. 무한 연기(indefinite postponement)란 무엇이며, 이것은 교착 상태와 어떻게 다르며 또한 유사점은 무엇인가?자원 할당 및 프로세스 스케줄링을 수행하는 동안 다른 프로세스를 기다리게 하는 시스템에서는 한 프로세스가 시스템에 의해 처리되는 동안 다른 프로세스의 스케줄링은 끝없이 연기될 가능성이 있다. 이러한 상태를 무한 연기 상태라 한다.7. 교착 상태가 존재할 네 가지 필요조건을 상술하시오. 또 각 조건이 왜 필요한지 간단히 설명하시오.상호 배제 - 프로세스들은 자신이 필요로 하는 자원에 대해 배타적인 사용으 ㄹ요구한다. 즉, 적어도 하나의 자원은 반드시 비공유 되는 상태에서 점유되어야 한다. 만일 다른 프로세스가 그 자원을 사용하려고 한다면 요청한 프로세스는 자원이 사용 가능할 때까지 기다려야한다.점유와 대기 - 시스템 내부에 어떤 프로세스가 적어도 하나의 자원을 점유하면서, 다른 프로세스에 의해 점유된 다른 자원을 요구하고 할당받기를 기다릴 때 교착 상태가 발생할 수 있다.비선점 - 자원을 점유하고 있는 프로세스는 그 작업의 수행이 끝날 때까지 해당 자원을 반환하지 않는다.환형 대기 - 프로세스들의 환형 대기가 존재하여야 하며, 이를 구성하는 각 프로세스는 환형 내의 이전 프로세스가 요청하는 자원을 점유하고, 다음 프로세스가 점유하고 있는 자원을 요구하고 있는 경우 교착 상태가 발생할 수 있다. 이 조건은 사실 두 번째 조건인 점유와 대기 조건을 암시하고 있다.9. Havender의 “점유와 대기” 조건의 방지는 시스템이 프로세스를 진행시키기 전에 미리 프로세스가 필요한 모든 자원을 요구하도록 하고 있다. 시스템은 이 요구에 의해 “전부 아니면 전무(all or none)”의 형식으로 응답을 한다. 이것은 교착 상태의 예방책으로 가장 널리 쓰이는 것 중의 하나이다. 이 방법의 장단점을 논하시오.