1. Explain the differences between Preemptive Scheduling and Non-Preemptive Scheduling. What are the pros and cons of those?

A. Preemtive Scheduling(선점형 스케줄링) 

- 어떤 스레드가 CPU를 사용하고 있는 동안 다른 스레드에 의해 선점당하는 스케줄링 방식
- 장점: 우선순위가 높은 프로세스가 먼저 수행되어야 할 때 유용
           대화식 시분할 시스템이나 실시간 시스템에 유용
- 단점: 프로세스간에 문맥 교환이 자주 발생하기때문에 이로 인해 오버헤드가 크다.

B. Non-Preemtive Scheduling(비선점형 스케줄링)

- 어떤 스레드가 CPU 사용권을 다른 스레드에게 이양한 후에 다른 스레드가 그 CPU를 사용할 수 있게 되는 방식
- 프로세스가 일단 실행 상태(Running State)에 진입하게 되면 종료되거나 비자발적으로 CPU를 놓을 때까지는 CPU를 빼앗기지 않는다.
- 장점: 모든 프로세스들에 대한 공정한 요구처리가 가능하다.
           응답시간 예측이 용이하다.
- 단점: 짧은 작업이 긴 작업을 기다리는 경우가 초래한다.

2. Explain the Virtual Memory? What are the benefits of that?

- 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능한 기법으로 애플리케이션이 요구하는 메모리와 하드웨어 메모리 관리 유닛(MMU) 사이에 논리적인 계층을 두어 동작한다.
- 각 프로세스에게 독립적인 주소 공간을 제공하여 메모리 보호, 접근 관리등이 보장된다.
-  장점

○ 여러 프로세스를 동시에 실행 가능
사용할 수 있는 물리메모리보다 많은 메모리를 필요로 하는 애플리케이션을 실행가능하게 함
○ 프로그램 코드 중 일부만 메모리에 로드해도 프로세스 실행가능
○ 라이브러리나 프로그램의 메모리 이미지 하나를 프로세스 사이에서 공유가능
○ 프로그램 재배치 가능
○ 기계 독립적 코드 작성 가능

3. What is Cache Memory? And are the benefits of using that?

- 빠른 접근 시간을 제공하는 기억 장치
- 느린 메모리 때문에 발생되는 프로세서 코어에 가해지는 메모리 엑세스 병목현상 감소
- 프로세서와 메모리 사이의 병목현상을 줄이기 위한 고속 메모리
- 지역성을 적극 활용한 것으로 자주 사용되는 데이터를 캐시에 저장하여 프로세서가 원활히 데이터를 사용할 수 있도록 함
- 장점

○ 가장 빠른 메모리의 속도에 근접한 메모리를 제공한다.

4. Explain the VFS(Virtual File System)?

- 표준 유닉스 파일시스템과 관련한 모든 시스템 콜을 처리하는 커널 소프트웨어 계층
- 실제 파일 시스템의 구현과 사용자 프로세스 사이에 존재하는 추상화 계층
- 여러 종류의 파일시스템에 대해 일반적인 공통 인터페이스를 제공

5. What is PCB(Process Control Block)? And what kinds of information are there?

- 수행 프로세스를 인터럽트 한 후 나중에 그 인터럽트가 발생되지 않은 것처럼 프로세스 수행을 재개할 수 있도록 충분한 정보를 유지하는 것
- 프로세스 식별자, 상태, 우선순위, 프로그램 카운터, 메모리 포인터, 문맥교환, 입출력 상태 정보, 어카운팅 정보

6. Explain the Paging Mechanism in memory management.

- 가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법이다. 이때의 일정한 크기를 가진 블록을 페이지라고 한다. 주소공간을 페이지 단위로 나누고 실제 기억공간은 페이지 크기와 같은 프레임으로 나누어 사용한다.
- 프로그램을 페이지 단위로 나누었기 때문에 프로그램 실행 시 모든 페이지가 메모리에 로드될 필요없이 요구된 페이지만을 로드함으로써 여러 프로세스를 실행하는 것이 가능해진다.

7. What is Race Condition among processes? How can we solve the problem?

- 다수의 프로세스나 쓰레드가 공유 자원을 동시에 읽거나 쓰려고 하는 상황
- 두 개 이상의 프로세스가 공유 데이터 항목을 읽고 쓰는 상황으로, 최종 수행 결과는 프로세스들의 상대적인 수행 순서에 따라 달라질 수 있다.
- 해결 방안: Locking과 Non-Preemption
                  상호배제를 통해 임계자원, 임계영역에 단 하나의 프로세스만 접근 할 수
    있도록 한다.
     세마포어와 모니터가 사용된다.
- 경쟁 관계에 있는 프로세스들이 존재하는 경우 상호배제, 교착상태, 기아라는 세가지 제어 문제가 발생한다.


- Race condition을 해결하기 위한 방법은 two process solution, Multiprocess solution, synchronization H/W, semaphore방법 등을 이용하여 해결 할 수 있다. Two process solution에는 하나의 플래그를 사용하는 것과, 두개의 플래그를 사용하는 방법이 있고, Multiprocess solution은 Bakery 알고리즘이라고도 하며 번호를 부여받은 순서대로 처리된다. Synchronization H/W는 test, set, swap 3개의 명령으로 구현되고 semaphore는 P와 V 두개의 atomic한 연산에 의해서만 증감시킨다.

'Education > Operating System' 카테고리의 다른 글

컴퓨터 구조론  (0) 2011.03.11
이벤트 드리븐  (0) 2010.06.28
스레드 컨텍스트 스위치 시점 알 수 있는 방법  (0) 2010.06.28
geekos  (3) 2010.06.27
chapter 7. Memory  (2) 2009.12.11
Posted by 초상큼발랄
l