3.1 process management로 간주되기 위한 5가지 주 활동은 무엇인가?사용자와 시스템 프로세스 둘 다 생성/삭제프로세스 일시정지/재개프로세스 동기화를 위한 메커니즘 제공프로세스 통신(대화)을 위한 메커니즘 제공Deadlock handling을 위한 메커니즘 제공3.2 memory management로 간주되기 위한 3가지 주 활동은 무엇인가?현재 어떤 사용자가 점유하고 있는 메모리를 보호해줌메모리 공간 중 일부가 사용할 때 그 사용 가능한 공간에(어디에), 프로세스(어떤 프로세스)를 놓을지 결정함필요한 메모리 만큼의 할당/할당해제3.3 secondary storage management로 간주되기 위한 3가지 주 활동은 무엇인가?여유공간 관리저장공간 할당디스크 스케줄링3.4 file management로 간주되기 위한 5가지 주 활동은 무엇인가?파일의 생성/삭제디렉토리의 생성/삭제파일과 디렉토리의 조작을 위한 우선순위지원보조기억 장치로 파일 mapping비휘발성 저장매체(보조기억장치)에 파일 보관3.5 command interpreter 의 목적은 무엇인가? 왜 일반적으로 커널과 분리시키는가?사용자와 OS를 연결시켜주는 역할을 함.작업이 초기화되거나 사용자가 첫 로그온을 했을 때 command interpreter가 수행됨3.6 운영체제에 의해 제공되는 5가지 서비스를 열거하라. 각 기능은 사용자에게 어떤 역할을 하는지 설명하라.프로그램 수행 : 프로그램이 실행되려면 메모리에 적재가 가능해야 한다.정상적이든 비정상이든 종료가 가능해야 한다(에러로 인한 종료)입출력관리 : 수행되는 프로그램 중에서 I/O를 요구할 때가 있다. 이것은 I/O장치거나 파일을 포함한다. 특정장치나 특수기능을 원할 수도 있기 때문이다.(되감기 테이프나 빈 CRT화면 같은 것들)효용성과 보호를 위해서 사용자는 I/O장치를 직접 제어하지 못한다.따라서 OS는 I/O가 해야 할 것들을 분명히 제공해야 한다.파일시스템 조작 : 프로그램은 읽기/쓰기, 생성/삭제가 가능해야 한다.대화(통신) : 프로세스는 다른 프로세스와 정보교환이 가능해야 한다.통신 같은 경우 2가지 방법이 발생할 수 있다.첫번째 방법은 수행중인 동일한 컴퓨터에서 이고 두번째는 같은 네트워크 상에있는 다른 컴퓨터에서 이다.에러검출 : 운영체제는 항상 발생가능한 에러를 알고 있어야 한다.에러는 CPU에서, 메모리 H/W(메모리 error이나 power failure같은 경우)에서, 입출력장치(테이프 상의 패리티 에러, 네트워크 연결실패, 프린터의 용지부족의 경우)에서, 사용자 프로그램(산술적 오버플로우, 불법적인 메모리의 접근, CPU의 장시간 점유 등의 경우)에서 발생 가능하다.OS는 각 에러마다 맞게 고쳐주고 항상 계산을 일치시켜줘야 한다.3.7 system calls의 목적은 무엇인가?Process Control정상적인 종료, 비정상적인 종료프로세스 생성/종료프로세스 속성 상속/설정일정시간 동안 대기이벤트 대기, 이벤트 신호여유 메모리 할당File Management파일 생성/삭제열기/닫기읽기/쓰기/재배치파일 속성 상속/설정Device Management장치 요구/ 요구한 장치의 사용 허락읽기/쓰기/재배치장치 속성 상속/설정논리적인 첨부/ 장치분리Information maintenance시간, 날짜 상속/설정시스템 자료 상속/ 설정프로세스, 파일, 장치 속성 상속/ 설정Communication통신 연결 생성/ 삭제(해제)메시지 송수신상태정보 전송원격장치 분리/ 첨부3.10 system programs의 목적은 무엇인가?시스템 프로그램은 프로그램 개발과 수행을 위한 편리한 환경을 제공한다.파일관리 : 생성, 삭제, 복사, 개명, 인쇄, 덤프, 열거 그리고 일반 파일이나 디렉토리의 조작상태정보 : 어떤 프로그램을 날짜나 시간, 메모리나 디스크 공간중 사용가능한 양, 사용자 수나 유사한 상태정보를 시스템에게 물어본다.그런 정보는 구획이 정해졌을 때(포맷을 했을 때), 터미널로 인쇄됐을 때거나 다른 출력 장치나 파일로 인쇄됐을 때를 말한다.파일수정 : 몇몇 텍스트 편집기는 테이프나 디스크에 저장된 파일의 내용을 생성하거나 수정이 가능해야 한다.프로그래밍 언어 지원 : 한번 프로그램이 어셈블되거나 컴파일 되면 메모리에 적재후 수행이 되야 한다. 시스템은 절대로더, 재배치 로더, linkage loader, overlay loader를 제공해야 한다. 디버깅 시스템도 고급언어든 기계어든 어느쪽이든 이것을 제공해야 한다.통신 : 이러한 프로그램들은 다른 컴퓨터 시스템과 프로세스들, 사용자들 간에 가상연결 메커니즘을 제공한다. 사용자가 다른 화면으로 메시지를 보내는 경우나, 웹서핑을 하거나, 전자메일을 보내거나 원격접속을 하거나 다른 곳으로의 파일 전송등을 지원한다.3.11 시스템 디자인 방법중에서 계층화구조가 갖는 주 장점은 무엇인가?계층화 구조의 주된 장점은 모듈화이다.3.12 마이크로 커널의 주 장점은 무엇인가?마이크로 커널의 장점은 OS의 확장이 용이하다는 것이다. 모든 새로운 서비스가 사용자 공간에 추가되더라도 커널의 수정을 보통 요구하지는 않는다.마이크로 커널은 작은 커널이기 때문에 커널을 수정해야 할 때도 그 변화는 거의 없다.마이크로 커널은 대부분 서비스를 사용자가 사용중이어도 일반 커널에 비해 더 높은 신뢰성과 보안성을 지원한다. 서비스가 실패되더라도 OS의 나머지분을 손대지 않은 채로 남겨둔다.3.13 Virtual Machine을 이용하면 OS 설계자에겐 어떤 이점이 있는가? 그리고 사용자에겐 어떤 이점이 있는가?설계자 : 1. 시스템 자원을 완벽하게 보호함으로써 가상머신은 더 높은 보안레벨을 지원하게 된다.2. 가상머신은 일반 OS의 간섭없이 시스템개발을 끝날때까지 지원한다.사용자 : 각 가상머신은 모든 다른 가상머신과는 완벽히 분리되어 있다. 그래서 다양한 시스템 자원이 완벽히 보호되는 것처럼 우리는 보안 문제를 걱정할 필요가 없다.3.14 Java프로그램을 수행할 때 Just-in-time compiler는 왜 사용하는가?JVM의 성능 향상은 JIT컴파일러를 사용함으로써 이루어진다.3. 15 정책과 메커니즘을 분리해두는 이유는 무엇인가?메커니즘 : 무엇을 어떻게 할 것인가를 결정정책 : 무엇을 끝낼 것인가를 결정정책과 메커니즘은 유연성을 위해서 분리 해둬야 한다.이유 : 최악의 예로 정책내에서 각각의 변화는 메커니즘의 근본적인 변화를 요구하게 된다.정책의 변화는 시스템 내의 특정 매개변수의 재정의를 요구하게 된다.About EXECSystem call : int execl (char* path, char* arg(),char* arg1, …, char* argn, NULL)int execv(char* path, char* argv[])int execlp(char* path, char* arg(),char* arg1, …, char* argn, NULL)int execvp(char* path, char* argv[])exec() 군의 시스템 호출은 호출 프로세스의 코드, 자료, 스택을 경로 이름이 path에 저장되어 있는 실행 파일의 코드, 자료, 스택으로 치환한다.Execl()은 execlp()와 동일하고, execv()는 execvp()와 동일한데, 단 execl()과 execv()는 실행 가능한 파일의 절대 또는 상대 경로 이름이 제공되기를 요구하는 반면, execlp()와 execvp()는 path를 찾기 위해서 $PATH 환경 변수를 사용한다.만일, 실행 가능한 파일이 발견되지 않는다면, 시스템 호출은 -1을 반환한다. 그렇지 않다면 호출 프로세스는 자신의 코드, 자료, 스택을 실행 파일의 것으로 치환하고, 새 코드의 실행을 시작한다. 성공적인 exec()는 아무 것도 반환하지 않는다.execl()과 execlp()는 arg1…argn에 의해 포인트되는 문자열 인수를 가진 실행 파일을 부른다. arg()는 실행 파일 이름 그 자체이어야만 하며, 인수들은 끝이 널 문자이어야 한다.execv()와 execvp() 는 argv[1]…argv[n]에 의해 포인트되는 문자열 인수를 가진 실행 파일을 부른다. 여기서 argv[n+1]은 NULL이고, argv[0]는 실행 파일의 이름 그 자체이어야한다.
1. 프로텍션 시스템의 초기형태와 같은 모니터모드와 사용자모드간에는 어떤 차이가 있는가?시스템의 자원을 공유하되 사용자모드와 모니터모드라는 두가지 모드로 나뉘어서 사용한다.모니터모드 : 운영체제를 수행시키는 영역으로 커널모드, 시스템모드, 관리자모드, privileged 모드라고도 한다.이 곳을 사용자가 임의로 조정할 수 있게 된다면 각 작업은 원만하게 이뤄질 수 없다.사용자모드 : 사용자가 사용하는 영역, 사용자모드에서 모니터모드를 직접 제어할 수 없다.(CPU의 무한점유 막기위함)2. trap과 interrupt간의 차이점은 무엇인가? 각각은 어떤 기능을 하는가?인터럽트의 종류① 외부인터럽트 (time, key on console, signal from other process)② 관리자호출인터럽트(시스템호출과 관련함)③ 입출력 인터럽트(주변장치와 관련한 에러발생시)④ 머신체크(기계적인 에러 / 장치문제)⑤ 프로그램체크 (잘못된 연산, 잘못된 주소등의 수행이나 접근시)트랩 : 예외처리항목(SVC+program check)사용자의 요청이나 에러가 원인이 되어(=잘못된 명령을 내리거나 발견했을 때) 소프트웨어적으로 발생하는 인터럽트ex) 작업A가 메모리번지 AddrX번지(Base)에서 AddrX+10(Base+limit)번지 사이에서 수행되어야 하는데 이 메모리번지 범위 안에 들어있지 않으면 트랩이 발생함3. 다음 중에서 특별히 허가해야 할 명령어는 어느 것 인가?** 특별히 허가해야할 명령어(Privileged instruction) : Set value of timer이유 : 이 값을 설정해줌으로서 특정작업이 CPU의 무한점유 하는 경우를 방지할 수 있다. (한마디로 시간제한을 둬서 시간내에 작업안끝나면 강제종료시킴)a. Set value of timer 타이머값 설정
5.3 user level thread와 kernel level thread에서 차이점 두가지를 답하시오. 어떤 환경에서 한 type이 다른 것보다 나은가?User level threads library에 의해 스레드 관리가 이뤄지는가 여부Kernel level 에서 직접 스레드가 생성되는지 여부User threads 의 예 : POSIX Pthreads, Mach C-threads, Solaris 2 UI-threadsKernel threads 의 예 : Windows 95/98/NT/2000, Solaris 2, BeOS, Tru64 UNIX6.2 비선점 스케줄링과 선점형 스케줄링의 차이점을 설명하시오. 정밀한 비선점형 스케줄링 기법은 computer center에서 왜 바람직하지 않은지 기술하라.비선점 스케줄링과 선점형 스케줄링의 차이점은 후속 프로세스가 이전까지 작업을 수행하던 프로세스를 즉시 대신하느냐 아니냐의 차이에 있다. 즉, 각 프로세스에는 우선순위와 Burst time을 가지고 있다. 선점형 스케줄링은 이것들을 파악한 다음 CPU 할당 여부를 결정한다.6.3 다음 프로세스들과 관련된 표를 보고 문제에 답하시오Process Burst Time PriorityP1 10 3P2 1 1P3 2 3P4 1 4P5 5 2각 프로세스들은 P1, P2 ,P3 ,P4 ,P5의 순서로 모두 Time이 0일 때 도착한 것으로 가정한다.a. 각 프로세스 별로 FCFS, SJF, Non-Preemptive Priority, RR(Time Slice=1) 일 때 Gantt chart를 작성하라.FCFSP1 P2 P3 P4 P5 0 10 11 13 14 19SJFP1 P2 P5 P3 P4 0 10 11 16 18 19Non-Preemptive PriorityP2 P5 P1 P3 P4 0 1 6 16 18 19RR(time slice=1)P1 P2 P3 P4 P5 P1 P3 P5 P1 P5 P1 P5 P1 P5 P1 P1 P1 P1 P1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18b. part a에서 각 프로세스당 반환시간을 표시하라c. part a에서 각 프로세스당 대기시간을 표시하라.d. part a를 근거로 어느 스케줄링 기법에서 평균대기시간(AWT)가 가장 짧게 나오는가?Turnaround TimeP1 P2 P3 P4 P5 FCFS 10 11 13 14 19 SJF 10 11 18 19 16 Non-Preemptive Priority 16 1 8 19 6 RR(time slice=1) 19 2 7 4 14Wait TimeP1 P2 P3 P4 P5 AWT 문제d FCFS 0 10 11 13 14 7.6 평균대기시간은 RR 스케줄링기법에서 가장 짧게 나옴 SJF 0 10 16 18 11 11 Non-Preemptive Priority 6 0 16 18 1 8.2 RR(time slice=1) 9 1 5 3 9 5.46.4 다음 프로세스들이 수행되기 위해서 도착한 시간이 표와 같을 때 물음에 답하시오. 비선점 스케줄링 기법에 근거하여 답을 적으시오.Process Arrival Time Burst TimeP1 0.0 8P2 0.4 4P3 1.0 1a. FCFS 스케줄링 기법일 때 평균반환시간은 얼마인가?FCFSP1 P2 P3 0 8 12 13평균반환시간 (ATT) = 8+12+13/3 = 11b. SJF 스케줄링 기법일 때 평균반환시간은 얼마인가?SJFP1 P2 P3 P2 P1 0 0.4 1.0 2.0 5.4 13평균반환시간 (ATT) = 2+5.4+7.6/3 = 5c. 성능향상에 SJF 스케줄링을 이용하는것이 더 바람직하다고 봤을 때, 나머지 두 프로세스가 잇달아 도착한다는 사실을 모르고 프로세스 P1을 수행시키기 위해 time=0때 선택을 했다. SJF 스케줄링을 사용중이면서 처음 시간단위 1 동안 CPU가 유휴상태라면 그때 평균반환시간은 어떻게 변하는지 계산하라. 프로세스 P1과 P2가 CPU 유휴시간동안 대기중이면 그 프로세스들의 반환시간은 더 늘어날 것이라는 사실을 기억하라. 이 알고리즘은 future-knowledge scheduling로 알려져 있다.
▶ 운영체제의 정의1) 환경 제공자(environment provider):컴퓨터 시스템의 기본 요소인 하드웨어, 소프트웨어, 자료(data)를 다른 프로그램이 유용한 작업을 할 수 있도록 환경을 제공2) 자원 할당자(resource allocator):사용자의 작업을 위한 프로그램이 필요로 하는 컴퓨터 시스템의 자원(H/W, S/W)을 할당하되, 충돌 시 공정하고 효율적으로 할당3) 제어 프로그램(control program):컴퓨터의 오류와 부적절한 사용의 방지를 위해, 다양한 입출력 장치와 사용자 프로그램을 제어▶ 운영체제의 목적- 주목적: ‘편의성(convenience)’ - 컴퓨터 사용의 편의 제공 → (예) 개인용 컴퓨터(PC)- 부목적: ‘효율성(efficiency)’ - 컴퓨터 시스템의 효율적인 운영 → (예) 대형 컴퓨터→ 편의성과 효율성은 상반될 수 있음▶ 1950년대 컴퓨터 등장 이후의 운영체제의 발전 단계 조사: 운영체제 정의와 목적의 이해를 위함캐싱(Caching)▶ 저장장치 계층에서 상위 저장장치는 하위 저장장치의 캐시로 간주할 수 있음- 특정한 정보가 필요한 경우 먼저 고속의 캐시에 있는지를 조사하여 있으면 직접 사용하고,- 그렇지 않으면 저속의 하위 장치에 있는 정보를 사용하는데,- 만일 이 정보가 다시 사용될 확률이 높으면 캐시에 복사한다.→ 할당 정책과 교체 알고리즘의 구현이 필요* 일반적으로 캐시와 중앙처리장치(레지스터)간의 전송은 운영체제의 간섭 없이 하드웨어적으로 이루어지고, 디스크와 기억장치간의 자료 전송은 운영체제에 의해 이루어진다.이중 모드 연산(Dual-Mode Operation)▶ 하드웨어(비트)에 의해 제공되는 두 개의 독립된 연산 모드- 모니터 모드(슈퍼바이저 모드, 시스템 모드, 특권 모드): ex) 비트 값 = ‘0’- 사용자 모드: ex) 비트 값 = ‘1’→ 시스템을 위태롭게 할 수 있는 명령을 ‘특권 명령’으로 지정하여 모니터 모드에서만 수행되도록 하고, 만일 사용자 모드에서 수행하려는 경우에는 운영체 타이머에 의한 인터럽트 발생④ 제어를 모니터에 반환⑤ 모니터가 수행 중단/시간 부여 판단 ← 특권 명령어(타이머 조작)▶ 프로세스- 단순히 실행중인 프로그램이라 할 수 있음ex) 일괄처리 작업, 시분할 사용자 프로그램, 프린터로 출력하는 스풀링과 같은 시스템 태스크 등- 프로세스는 자신의 업무를 수행하기 위해 중앙처리장치 시간, 기억장치, 파일, 입출력장치 등의 자원을 필요로 함→ 생성될 때 제공, 또는 실행되는 동안 제공: 처리가 끝난 후 자원 회수- 프로그램 자체는 프로세스가 아님1) 프로그램: 디스크에 저장된 파일의 내용과 같은 수동적인(passive) 단위2) 프로세스: 다음 명령어를 수행하도록 지정하는 프로그램 계수기(program counter)를 가진 능동적인(active) 단위* 일반적으로 하나의 프로그램은 수행될 때 다수의 프로세스를 생성함- 프로세스는 시스템 내에서의 작업 단위1) 운영체제 프로세스: 시스템 코드를 수행하는 프로세스2) 사용자 프로세스: 사용자 코드를 수행하는 프로세스▶ 기억장치- 주소를 가진 단어나 바이트의 대용량 배열- 중앙처리장치와 입출력장치에 의해 신속한 접근이 가능한 자료의 저장 장소1) 명령어 인출 주기(instruction fetch-cycle): 중앙처리장치2) 자료 인출 주기(data fetch-cycle): 중앙처리장치, 입출력장치, DMA- 중앙처리장치가 직접 주소를 지정할 수 있는 유일한 기억장치- 프로그램이 수행되기 위해서는 절대 주소로 사상되어 기억장치에 적재되어야 함- 중앙처리장치 이용률과 컴퓨터 응답 속도를 개선하기 위해서 기억장치에 여러 프로그램을 적재→ 다양한 기억장치 관리 기법▶ 기억장치 관리를 위한 운영체제의 업무- 기억장치의 어느 부분이 어느 프로세스에 의해 사용되는지를 관리- 사용 가능한 기억 공간에 적재할 프로세스의 결정- 기억 공간의 할당 및 회수▶ 파일 관리- 파일 저장 매체:1) 종류: 자기 테이프, 자기 디스크, 광 디스크 등 다양2) 제어장치: 디스크 구동기, 테이프 구동기3nipulation)- 파일의 읽기, 쓰기- 파일의 생성, 삭제 등4) 통신(communication)- 프로세스간의 통신- 구현: 공유기억장치, 메시지 전달5) 오류 탐지(error detection)* 운영체제는 모든 가능한 오류를 알고 적당한 조치를 취해야 함- CPU, 기억장치: 정전, 기억장치 오류- 입출력 장치: 테이프의 패리티 오류, 카드 판독기의 카드 체증, 프린터의 종이 없음- 사용자 프로그램: 연산의 오버플로우, 부적당한 메모리 장소 접근 시도, CPU의 과다 시간 사용6) 자원 할당(resource allocation)- 중앙처리장치 사이클, 주기억장치, 파일저장장치: 특수한 할당 코드(allocation code)- 입출력장치: 일반적인 요구/해제 코드(request/release code)7) 회계(accounting)- 사용자의 컴퓨터 자원 사용 내역: 사용료 청구, 사용 통계 파악8) 보호(protection)- 보호: 시스템 자원에 대한 접근 제어- 보안: 외부로부터의 시스템 접근 제어▶ 시스템 호출: 프로세스와 운영체제간의 인터페이스 제공→ 일반적으로 프로세스에서 다수의 시스템 호출이 발생하는데, 컴파일러와 수행시간 지원 패키지에 의해 프로그래머로부터 숨겨짐▶ 시스템 호출의 형태: [그림 3.2] 시스템 호출 형태1) 프로세스 제어(process control)- 종료(end), 취소(abort)- 적재(load), 수행(execute)- 프로세스 생성(create process), 프로세스 종료(terminate process)- 프로세스 속성의 획득/설정(get/set process attributes)- 시간 대기(wait for time)- 사건 대기(wait event), 사건 신호(signal event)- 기억장치 할당/해제(memory allocate/free)2) 파일 조작(file manipulation)- 파일 생성(create file), 파일 삭제(delete file)- 개방(open), 폐쇄(close)들은 가상 기계를 만들기 위해 공유됨1) 중앙처리장치 스케줄링: 가상의 전용 처리기 제공2) 가상기억장치 기법: 가상의 전용 기억장치 제공3) 스풀링과 파일 시스템: 가상의 카드 판독기, 가상의 라인 프린터 제공4) 시분할 터미널: 가상의 전용 콘솔 제공5) 소형 디스크(minidisk): 물리적 디스크에서 필요한 트랙을 할당하여 가상의 디스크 제공- OS 측면: 사용자는 주어진 가상기계 위에 단일 사용자 대화형 운영체제 CMS를 수행▶ 시스템의 목표와 명세의 정의- 최상위 단계에서의 시스템 설계는 하드웨어 선택과 시스템 형태(일괄처리, 시분할, 단일 사용자, 다중 사용자, 분산, 실시간, 범용 등)에 큰 영향을 받음- 최상위 단계를 넘는 요구를 규정하는 것은 어려움① 사용자 목적: 사용의 편리성, 이해의 용이성, 신뢰성, 안정성, 신속성 등② 시스템 목적: 설계, 구현, 유지보수의 용이성, 적응성, 신뢰성, 무오류, 효율성 등→ 이러한 정의 문제를 해결하는 일반적인 방법 없음: 몇 가지 원칙 - “소프트웨어 공학”3.7.2. 메커니즘 및 정책(Mechanism and Polices)▶ 설계의 기본 원칙: 메커니즘과 정책의 분리- 메커니즘: 어떻게 할 것인가를 결정하는 것- 정책: 무엇을 할 것인가를 결정하는 것ex) 중앙처리장치 보호 - ① 메커니즘: 타이머 구성② 정책: 특정 사용자를 위한 타이머의 길이 설정→ 융통성: 일반적인 메커니즘을 제공하고, 정책 결정은 시스템의 특정 매개변수의 재 정의로 결정3.7.3 구현(Implementation)▶ 어셈블리어가 아닌 고급 언어에 의한 운영체제 구현- 사례:① Burroughs 컴퓨터의 MCP(Master Control Program): ALGOL의 변형으로 작성② MIT의 Multics: PL/1으로 작성③ Prime 컴퓨터의 Primos: Fortran 파생어로 작성④ UNIX, OS/2, 윈도우즈/NT: C로 작성- 장점: 코드를 신속하게 작성할 수 있고, 간결하고 이해하기 쉬우며 수정이 용이- 단점: 속러(CPU scheduler)’- 목적: 주기억장치에 준비된 작업들 중에서 실행할 작업을 선택하여 중앙처리장치를 할당- 실행 빈도: 多 → 단기 스케줄러는 매우 신속해야 함▶ 중기 스케줄러(medium-term scheduler): ‘교체(swapping)’ - 8장 참조[그림 4.6] 큐잉 도표에 중기 스케줄링의 추가- 목적: 기억장치에서 중앙처리장치에 대해 경쟁이 심한 프로세스의 수를 줄여 다중 프로그래밍의 차수를 완화시킴. 그 밖에도,1) 프로세스의 혼합 상태 개선2) 기억장치의 공간 확보 등에 활용 가능함ex) 시분할 시스템의 경우, 장기 스케줄러를 거의 사용하지 않고 중기 스케줄러를 많이 사용함→ 새로운 프로세스는 즉시 단기 스케줄러에 넣으며, 중기 스케줄러에 의한 기다림을 참지 못하는 사용자는 자리를 뜨게 됨▶ 공유 자원들에 대한 다중 스레드의 제어 방법1) 커널 지원 스레드(kernel-supported threads) 방식: ex) Mach, OS/2- 프로세스에서와 같은 시스템 호출 집합을 제공2) 사용자 수준 스레드(user-level threads) 방식: ex) Andrew- 사용자 수준에서의 라이브러리 호출 집합을 제공- 스레드 교환은 운영체제 호출을 필요로 하지 않기 때문에 매우 신속- 한 사용자 수준 스레드의 시스템 호출로 전체 프로세스(태스크)의 대기를 초래→ 커널은 스레드에 대한 정보 없이 프로세스만을 스케줄하기 때문- 스레드 입장에서는 불공정한 스케줄링 발생ex) 프로세스 a: 1개의 스레드로 구성, 프로세스 b: 100개의 스레드로 구성두 프로세스에 동일한 수의 타임 슬라이스를 할당받음→ 프로세스 a의 스레드가 프로세스 b의 스레드에 비해 100배 빨리 수행됨→ 단, 커널 지원 스레드의 경우에는, 스위칭에 보다 많은 시간이 소요되지만 프로세스 b가 프로세스 a에 비해 100배 더 많이 받음3) 사용자 수준 스레드와 커널 지원 스레드의 혼합(hybrid) 방식: ex) Solaris 2 → 4.5.2절 참조- 혼합 방식은 스레드용함
1.1 What are the three main purposes of an OS?One. Convenience for the users (사용자를 위한 편리성)Two. Use the computer hardware in an efficient manner (H/W의 효율적인 사용)Three. Acts as an intermediary between a user of a computer and the computer hardware (컴퓨터 사용자와 H/W간의 통역관 역할)1.2 What is the main advantage of multiprogramming?Increased CPU utilization (several jobs are kept in main memory at the same time, and the CPU is multiplexed among them.)CPU를 좀 더 효과적으로 활용함 (다수개의 작업이 주기억장치에서 동시에 수행됨. CPU는 복합적으로 작업에 관여함)1.4 What are the main differences between operating systems for mainframe computers and PCs?PC OSs therefore were neither multiuser nor multitasking. (PC는 멀티유저나 멀티태스킹 그 어느 쪽도 아님)Multitasking : like a time sharing system (user sharing by short quantum on interactive terminal) – Each user is under on illusion to monopolize systemBut PCs can talk with users (Interactive system)1.6 Define the essential properties of the following types of OS:a. Batch: Automatic job sequencing automatically transfers control from one job to anotherReduce setup time by batching similar jobs (유사작업을 모았다가 한번에 처리함)b. Interactive: this property can reference about Desktop Systems. The DS’s main property is interactive with computer users (like talking with man to man)c. Time sharing: User sharing by short time quantum on interactive terminal (사용자마다 잠깐 동안 CPU사용시간을 분배해줌. 즉, 각각의 사용자는 자신이 완전히 CPU를 독점하고 있는 듯한 느낌을 줌)d. Real time: Well-defined fixed-time constrains = deadline (제한된 시간내에 즉시 처리하여 결과를 보여줘야 한다)this type can divide Hard real-time and Soft real-time.Hard real-time-Guarantees fixed critical tasks be completed on time.-Conflicts with time-sharing systems, not supported by general-purpose operating systems.Soft real-time-Less interactive-Useful in applications (multi media, virtual reality) requiring advanced operating system features.But this type needs to require QoS(Quality of Service is very important part on this type)e. Networkf. Parallelthis type is same meaning Tightly coupled system: Multiprocessor systems with more than CPU in close communication-Tightly coupled systemprocessors share memory and a clockcommunication usually takes place through the shared memory-Advantages of parallel systemincreased throughputeconomy of scaleincreased reliability (graceful degradation -> fault tolerant system)g. Distributedthis type is same meaning Loosely coupled system: Distribute the computation among several physical processors-Loosely coupled systemeach processor has its own local memoryprocessors communicate with one another through various communications lines, such as high-speed buses or telephone lines.-Advantage of distributed systemsResources SharingComputation speed up load sharingReliabilityCommunicationsIf any processor has killed then the other processors will process killed processor’s tasking(s).h. Clustered systems(many computer take form a cluster): Clustered system differ from parallel system..are composed of two or more individual systems coupled systemProvides high reliabilityClustered system-Asymmetric clusteringone machine is in hot standby mode while other servers are running applicationThe Hot standby mode monitors active servers-Symmetric clusteringall N hosts are running the applicationMonitoring each otheri. Handheld:main thing is what can be easy-portable and very minimum size than other systemsLimited memorySlow processorsSmall display screens.1.9 Describe the differences between symmetric and asymmetric multiprocessing. What are three advantage and one disadvantage of multiprocessor systems?: Symmetriceach processor is one unit of this systems. And each processor has equal level each other:AsymmetricExist One Main Processor(OMP). This system is called Master-Slave structure.OMP leads other processors’ working(tasking) and other processors follow OMP’s leading: the 3 advantagesincreased throughput (than single system)economy of scale (than single system)increased reliability: the 1 disadvantageif failure is detected, the backup copy is activated and is restarted from most recent checkpoint (but this Solution is expensive)1.10 What is the main difficulty that a programmer must overcome in writing an OS for a real-time environment?: Real-time systems need accuracy but most thing is quickness (because real-time systems are used when rigid time requirements have been placed on the operation of a processor or the flow of data)