'Education/Operating System'에 해당되는 글 16건

  1. 2011.03.11 컴퓨터 구조론 by 초상큼발랄
  2. 2011.03.11 운영체제 by 초상큼발랄 2
  3. 2010.06.28 이벤트 드리븐 by 초상큼발랄
  4. 2010.06.28 스레드 컨텍스트 스위치 시점 알 수 있는 방법 by 초상큼발랄
  5. 2010.06.27 geekos by 초상큼발랄 3
  6. 2009.12.11 chapter 7. Memory by 초상큼발랄 2
  7. 2009.10.22 명령어 수행 by 초상큼발랄 2
  8. 2009.10.22 Interrupt by 초상큼발랄 2
  9. 2009.10.22 Scheduling by 초상큼발랄
  10. 2009.10.22 Scheduling(1) by 초상큼발랄 1
1. 다음 각 설명에 해당하는 것의 번호를 모두 써라.
    (1) Ideal CPI를 줄이는 것들은?
Software pipelining, Superscalar
    (2) Data Hazard stall을 줄이는 것들은?
Software pipelining, Compiler speculation
    (3) Control Hazard stall을 줄이는 것들은?
Compiler speculation, Branch prediction, Loop unrolling
2. Scoreboard에서
    (1) 1st stage(ID1)에서 stall되는 경우 두 가지는?
Structual Hazard 나 WAW hazard 발생할 경우 
    (2) 2nd stage(ID2)에서 stall되는 경우는?
Data Hazard가 발생할 경우
3. (1) Coarse-grained multithreading은 fine-grained multithreading과 어떻게 다른가?
Fine-grained multithreading : 각 명령어 마다 스레드를 교체
                             여러 스레드는 인터리빙 방식으로 실행
Coarse-grained multithreading :  L2 캐시 미스와 같이 오랜 시간이 걸리는 긴 스톨의 
                                           경우에만 발생
   (2) Coarse-grained multithreading의 장점과 단점을 설명하라.
- 장점: 빠른 스레드 스위칭을 구현할 필요를 덜어준다.
          각 스레드의 실행 지연 시간도 줄여준다.
- 단점: 파이프라인 시작 오버해드가 크기때문에 짧은 스톨에서 처리속도 저하를 극복할 수 있는 능력을 제한한다.
  (3) Fine-grained multithreading과 simultaneous multithreading의 차이점은?
Fine-grained multithreading은 한 클럭 사이클에 대하여 하나의 스레드만 명령을 이슈하지만 Simultaneous multithreading은 한 클럭 사이클에 대하여 여러 스레드가 명령을 이슈한다
4. MSI Writeback Invalidation Snoop-based cache coherence protocol에서
   (1) Shared 상태인 block을 processor가 요청해서 write hit인 된 경우 이 block은 어떤 상태가 되는가?
Modified
   (2) 그 외에 이 cache의 controller가 하는 일은? 
           
   (3) 이 때 이 block을 가지고 있는 다른 cache controller(s)는 어떤 동작을 하며, 이 block을 어떤 상태로 만드는가?

   (4) Update protocol이라면 (3)이 어떻게 달라지겠는가?

5. Cache miss의 종류 4 가지를 쓰고, 각각이 발생하는 원인을 서술하라.
A. Compulsory miss( 강제 미스)
    블록에 대한 처음 엑세스는 캐시에서 발견할 수 없다.
    왜냐하면 블록이 먼저 캐시로 인출되어야 하기 때문이다.
B. Capacity miss(용량 미스)
    만약에 캐시가 프로그램의 실행시간 동안 모든 블록을 갖고 있을수 없다면(강제미스에 추가하여) 용량 미스가 발생된다. 왜냐하면 한번 인출된 블록이 교체된 후 다시 인출되어야 하기 때문이다.
C. Conflict miss(충돌 미스)
   블록 배치 방식이 완전 연관 방식이 아닐 경우( 강제미스와 용량미스에 추가하여) 충돌미스가 발생한다. 왜냐하면 충돌된 블럭들이 같은 집합에 사상되면 이 블록은 교체된 후에 나중에 다시 인출되기 때문이다.
D. Coherence miss(일관성 미스)
    멀티프로세스에서 여러 캐시의 내용에 대한 일관성을 유지하기 위하여 캐시 플러시(flush)에 의해 발생되는 미스이다.
 

6. Cache의 miss rate를 낮추기 위한 방법 5 가지를 열거하고, 각각은 위 6번 문제의 miss 중 어느 miss를 줄이는지 써라.

A. 블럭크기를 크게한다.(Compulsory)
B. High Associativity(Conflict)
C. Victim Caches(Conflict)
D. Pseudo Associative Caches
E. Hardware Prefetching of Instructions and Data(Compulsory)
F. Software Prefetching of Data
G. Compiler Optimization(Conflict)
H. Skew Associative Cache(Conflict)
I. Large Cache(Capacity)


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

운영체제  (2) 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

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
이벤트 드리븐(event driven)이란??
 
어떤 사건이 발생하면 지체 없이 그 내용을 전달해 주는 것을 말합니다. 예를들어 윈도우 프로그래밍에서 프레임에 하나의 버튼이 올라와 있다고 가정하고 그버튼에 마우스를 클릭하면 어떠한 결과가 나오는 리스너를 붙여뒀다고 가정합시다. 리스너는 계속해서 프로그램이 실행중이면서 버튼의 특정한 상태가 들어오길 바랍니다. 마우스로 클릭하면 클릭했다는 정보를 지체없이 전달해 어떤 결과를 출력하는것이 이벤트 드리븐입니다. 이미 눈에 보이는 이벤트 드리븐을 말하자면.... 현재 님께서 보고 계시는 익스플로러의 오른쪽 상단의 닫기(X)표시에 리스너가 붙어있고 클릭동작이 들어오면 창을 닫는 이벤트가 있는겁니다. 혹은 마우스를 상단의 메뉴 파일(F)에 올리면 올린부분의 색이 지정된 색으로 반전 될것입니다. 이것도 이벤트 입니다. 그런데 이 이벤트라는게 운영체제 안에 많이 있습니다. 마우스 포인터가 가리키는 커서에 클릭과 더블클릭에 윈도우 창늘리고 줄이기에 닫기 키입력 이벤트... 등등 어떤 특정한 동작을 하기위해 여러가지 이벤트 리스너가 붙어있습니다. 윈도우 프로그래밍에서 버튼 객체를 만들고 그에 따른 동작을 하는 것입니다. 물론 리스너만 붙여놓고 이벤트 동작을 붙이지 않거나 리스너를 붙이지 않으면 제대로 동작을 하지 않는것은 당연한것입니다. 정리하자면 어떤 객체가(꼭 윈도우 구성 요소따위가 아니어도 됩니다.) 특정한 동작을 받아들이면 바로 그 동작값을 전달하는거라 보시면 됩니다

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

컴퓨터 구조론  (0) 2011.03.11
운영체제  (2) 2011.03.11
스레드 컨텍스트 스위치 시점 알 수 있는 방법  (0) 2010.06.28
geekos  (3) 2010.06.27
chapter 7. Memory  (2) 2009.12.11
Posted by 초상큼발랄
l
컨텍스트 스위칭
CPU 할당 시간을 얻게 되는 프로세스가 메인 메모리로 올라가고, 이전에 실행되던 프로세스는 메모리에서 내려와야 한다.
CPU 할당 시간을 얻게 되는 프로세스가 변경되는 시점에서 거쳐야 하는 몇몇 과정이 있다.



Thread가 스위칭되는 시점은 다음과 같은 경우가 있습니다.

1. I/O function이 호출되어 해당 I/O의 응답을 기다려야 할 때
HDD, Network등에서 I/O 작업을 만났을 경우입니다. fopen, fread, fwrite는 해당 디바이스가 명령의 처리를 완료하는 시점이 되어야 다음 코드로 넘어 가기 때문에 이러한 function에서 Thread 스위칭이 일어 납니다.

2. OS에서 제공하는 Thread 관련 API를 호출할 때
Sleep, WaitForSingleObject, WaitForMultipleObjects, EnterCriticalSection 등 OS에서 제공하는 (엄밀히 말해서 CPU가 제공해 주는 atomic한 기능을 OS에서 wrapping한) API를 호출할 경우에도 Thread 스위칭이 일어나 수 있습니다.

3. 메모리 사용에 있어서 Memory Page Fault 가 났을 때
메인 메모리가 부족한 경우 HDD를 메모리의 대체제로 사용하죠. 이 경우 특정 메모리를 접근하게 될 경우 만약 Memory Page Fault가 나는 영역이라면 OS는 Memory-HDD 간의 swapping을 해줘야 합니다. 코드상으로는 메모리를 접근하는 것이겠지만, 실제로는 HDD를 access하는 것이죠. 이 경우에도 Thread 스위칭이 일어 납니다.

4. 해당 Thread의 Time Slice가 다 했을 때
while (true) ; 와 같이 무한 루프라 하더라도 OS가 해당 Thread에게 할당해 준 임의의 시간을 경과해서 계속해서 CPU을 점유하게 되면, OS가 알아서 실행 권한을 뺏어 옵니다. 이 경우에도 Thread 스위칭이 일어날 수 있습니다.

통상적으로 1~2번은 Thread의 스위칭 여부를 코드상으로 알아낼 수는 있지만, 3~4번은 코드로 판별하기가 어렵습니다.


출처 : http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNO=20&no=821991&ref=821991&page=2

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

운영체제  (2) 2011.03.11
이벤트 드리븐  (0) 2010.06.28
geekos  (3) 2010.06.27
chapter 7. Memory  (2) 2009.12.11
명령어 수행  (2) 2009.10.22
Posted by 초상큼발랄
l

geekos

Education/Operating System 2010. 6. 27. 12:58

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

이벤트 드리븐  (0) 2010.06.28
스레드 컨텍스트 스위치 시점 알 수 있는 방법  (0) 2010.06.28
chapter 7. Memory  (2) 2009.12.11
명령어 수행  (2) 2009.10.22
Interrupt  (2) 2009.10.22
Posted by 초상큼발랄
l

chapter 7. Memory


· 메모리 관리가 만족시켜야 하는 요구 조건

1. 재배치(Relocation)

2. 보호(Protect)

3. 공유(Sharing)

4. 논리적 구성

5. 물리적 구성

2-pass assembler

지금 수행된 application Memory 초과에도 사용될 수 있는 방법

· Fetch policy : 불러들이는 방법

· Placement policy :

· Replacement policy :

· 단편화(Fragmentation)

- 내부 단편화(Internal Fragmentation) : 파티션 내부 공간의 낭비가 발생하는 현상

- 외부 단편화(External Fragmentation) : Compaction 수행 방법 필요

장점: 메모리 효율성 大, 공간 활용도 大

단점: 메모리 할당 속도↓, 할당 · 해지가 계속적으로 반복

해결책 → Compaction(메모리 집약): 프로세스가 사용하는 파티션을 이동시켜 각 파티션이 연속적이 되도록 인접하게 만들고 메모리의 모든 빈 공간이 하나의 블록이 되도록 한다.

· 메모리 분할 (Memory Partition)

- 고정 분할(Fixed Partitioning)

균등 분할: 각 분할이 모두 같은 크기를 작도록 균등 분할

문제점 1) 프로그램이 파티션보다 클 수 있다.

2) 주기억장치 이용률이 매우 저조 - 내부단편화 발생(Internal Fragmentation)

비균등 분할: 위의 문제점 해결

고정된 partition을 사용할 경우 잉여 공간(내부 단편화)이 다량으로 발생

- 동적 분할(Dynamic Partitioning) :

외부 단편화 → compaction

· Placement algorithm ≒ Fit policy

1. Best Fit : 요청된 크기와 가장 근접한 크기의 메모리 선택

공간 효율성 大, 남아있는 잉여구간이 적지만 사용가능성이 적다.

비어있는 구간을 모두 다 비교해야하므로 시간이 많이 걸린다.

2. First Fit : 메모리의 처음부터 검사해 크기가 충분한 첫 번째 사용가능한 메모리 블록을 선택

메모리 공간 효율성 小, 시간이 적게 걸림(가장 마지막 메모리 위치 효율성 ↓)

3. Worst Fit : 메모리 잉여 공간이 가장 큰 메모리 할당

생각보다 비효율적이지 않다. 분할된 구간이 커짐

→ 큰메모리 구간을 남겨둬서 1차적 사용가능

4. Next Fit : 가장 최근에 배치되었던 메모리 위치에서부터 검사를 시작해 크기가 충분한 다음 위치의 사용가능한 메모리 블록을 선택

5. Last Fit :


· 리눅스/유닉스에서 내부 단편화(Internal Fragmentation)를 해결하기 위해 Slab Allocator

Architecture 마다 다르지만 일반적으로 32Bits System에서 4KB 단위의 page Frame이 고정된 크기로 분할되어있다.

If, 메모리가 400KB를 요청한다면 Page 배수가 된다.

즉 Fixed partition과 Page 묶음으로 할당 해지하는 Dynamic partition으로 사용된다.

· 리눅스는 내부 단편화(Internal Fragmentation)를 해결하기 위해서 슬랩 할당자(Slab Allocator)를 도입하고, 버디 할당자(Buddy Allocator)는 메모리 관리의 부하가 적으며 외부 단편화(External Fragmentation)를 줄일 수 있다는 장점을 제공한다.



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

스레드 컨텍스트 스위치 시점 알 수 있는 방법  (0) 2010.06.28
geekos  (3) 2010.06.27
명령어 수행  (2) 2009.10.22
Interrupt  (2) 2009.10.22
Scheduling  (0) 2009.10.22
Posted by 초상큼발랄
l

명령어 수행

1) 명령어 처리 두 단계

(1) 메모리로 부터 한 번에 하나의 명령어를 읽어 들임(fetch)(2) 읽어 들인 명령어 수행

(a)명령어 형식

0                                  3

4                                                                                                                                            15

연산 코드

주소

 

(b)정수 형식

0        1

2                                                                                                                                                                       15

부호

절대값


명령어와 데이터의 길이가 16비트일 때, 명령어 형식은 연산코드(opcode)를 위해 4비트를 할당할 경우 최대 ( 24 = 16 개 )의 서로 다른 연산코드사용 가능할 수 있으며, 명령어 형식으로 나머지 12비트를 사용할 경우 최대 ( 212 = 4,096(4K) ) 워드 까지 직접 주소 지정 가능하다.

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

geekos  (3) 2010.06.27
chapter 7. Memory  (2) 2009.12.11
Interrupt  (2) 2009.10.22
Scheduling  (0) 2009.10.22
Scheduling(1)  (1) 2009.10.22
Posted by 초상큼발랄
l

1. 중첩인터럽트 처리 방법

1) 하나의 인터럽트를 처리하는 동안 다른 인터럽트를 금지(disable)시킨다.

· 금지된 인터럽트: 단순히 처리기가 인터럽트 요구 신호를 무시한다는 의미

ex) 인터럽트 금지 기간 동안에 발생한 인터럽트는 처리되지 않은 채 남겨져 있게 되고, 처리기가 인터럽트 발생을 허용한 후에 처리된다.

· 단점: 우선순위나 시간 긴급(time-critical) 요구를 고려하지 않고 있다.

2) 인터럽트 간의 우선순위를 정하고 높은 우선순위 인터럽트가 낮은 우선순위 인터럽트를 인터럽트 할 수 있도록 허용하는 것이다.

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

chapter 7. Memory  (2) 2009.12.11
명령어 수행  (2) 2009.10.22
Scheduling  (0) 2009.10.22
Scheduling(1)  (1) 2009.10.22
Trace of Process  (2) 2009.10.12
Posted by 초상큼발랄
l

* First-Come-First-Served(FCFS)

- 비선점형(Non-preemptive)

- 가장 단순한 형태의 스케줄링 정책이며, FIFO(First-Input-First-Output)라고도 불린다.

- 짧은 프로세스보다는 긴 프로세스에 유리하다.

* Round-Robin(RR)

- 선점형(Preemptive)

- 시간 할당량(Time Slicing 또는 Time Quantum) 기법

- 모든 프로세스는 한 번에 정해진 시간 조각만큼만 실행 한 후 강제적으로 CPU를 빼앗는다.

* Shortest Process Next(SPN)

- 비선점형(Non-preemptive)

- 가장 짧은 프로세스를 먼저 수행

- 구현 불가능(각 프로세스가 요구하는 총 실행시간을 미리 알아야 함)

* Shortest Remaining Time(SRT)

- 선점형(Preemptive)

- 예상되는 남아 있는 실행시간이 가장 짧은 프로세스가 선택

* Highest Response Ratio Next(HRRN)

- 비선점형(Non-preemptive)

- 반환 시간(TAT) : 프로세스가 시스템에 진입한 후 대기한 시간과 실행한 시간을 모두 합쳐 결국 시스템 내에서 머문 총 시간을 의미한다.

실제 서비스 시간 대비 반환시간의 비율을 나타낸다.

- R(응답 비율) = ( time spent waiting(처리기를 기다리며 대기한 시간) + expected service time(예상되는 서비스 시간) ) / expected service time(예상되는 서비스 시간)

- 대기시간이 길어지면 R값이 커지기 때문에 스케줄러에게 보상 받는다.

- 계산시간이 복잡하고 증가면 이 알고지름의 시간 복잡성이 증가하여 오버헤드가 발생할 가능성이 크기 때문에 고려해야한다.

* 스케줄링 정책들의 비교 분석 *

프로세스

A

B

C

D

E

도착시간

0

2

4

6

8

서비스시간(Ts)

3

6

4

5

2

<FCFS>

평균

종료시간

3

9

13

18

20

반환시간(Tr)

3(3-0)

7(9-2)

9(13-4)

12(18-6)

12(20-8)

8.60

Tr/Ts

1.00

1.17

2.25

2.40

6.00

2.56

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

A

B

C

D

E

<RR q=1>

평균

종료시간

4

18

17

20

15

반환시간(Tr)

4(0-4)

16(18-2)

13(17-4)

20(20-6)

7(15-8)

10.80

Tr/Ts

1.33

2.67

3.25

2.80

3.50

2.71

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

A

B

C

D

E

<RR q=4>

평균

종료시간

3

13

11

20

19

반환시간(Tr)

3(3-0)

11(13-2)

7(11-4)

14(20-6)

11(19-8)

10.00

Tr/Ts

1.00

2.5

1.75

2.80

5.50

2.71

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

A

B

C

D

E

<SPN>

평균

종료시간

3

9

15

20

11

반환시간(Tr)

3(0-3)

7(9-2)

11(15-4)

14(20-6)

3(11-8)

7.60

Tr/Ts

1.00

1.17

2.75

2.80

1.50

1.84

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

A

B

C

D

E

<SRT>

평균

종료시간

3

15

8

20

10

반환시간(Tr)

3(0-3)

13(15-2)

4(8-4)

14(20-6)

2(10-8)

7.20

Tr/Ts

1.00

2.17

1.00

2.80

1.00

1.59

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

A

B

C

D

E

<HRRN>

평균

종료시간

반환시간(Tr)

Tr/Ts

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

A

B

C

D

E

<Feedback>

평균

종료시간

반환시간(Tr)

Tr/Ts

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

A

B

C

D

E

 

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

명령어 수행  (2) 2009.10.22
Interrupt  (2) 2009.10.22
Scheduling(1)  (1) 2009.10.22
Trace of Process  (2) 2009.10.12
HAL(Hardware Abstraction Layer)  (0) 2009.10.07
Posted by 초상큼발랄
l

Chapter 9. Uniprocessor Scheduling

* 스케줄링의 목적

- 처리기가 다음에 실행할 프로세스를 선택하는 것

- 응답시간(Response time)

- 처리량(Throughput)

- 효율성(Processor efficiency)

* 스케줄링의 종류

- 장기 스케줄링(Long-Term Scheduling)

· 프로세스를 시스템으로 집입시킬지 여부를 결정

· 다중프로그래밍의 정도를 제어하는 역할

- 중기 스케줄링(Medium-Term Scheduling)

- 단기 스케줄링(Short-Term Scheduling)

· 디스패처(Dispatcher)

· CPU에 의해 실행될 다음 번 프로세스로 어떤 프로세스를 선택할지를 결정

· 자주 실행됨

* 단기 스케줄링 평가 기준들

· 사용자 중심의 성능 관련 평가 척도

- 반환 시간(Turnaround Time): 프로세스가 시스템으로 진입한 후부터 종료할 때까지 걸린 시간

- 응답시간(Response Time): 프로세스가 시스템에 요구를 한 후 이에 대한 시스템으로부터의 첫 번째 응답이 올 때까지의 시간

- 완료 기한(Deadline): 프로세스가 완료 되어야 하는 시점

· 사용자 중심의 기타 평가 척도

- 예측가능성(Predictability): 같은 작업이라면 실행 될 때마다 동일한 기간 동안 실행되어야 하고, 시스템의 부하 정도에 상관없이 동일한 비용으로 실행되어야 한다. 만일 실행할 때 마다 지나치게 차이가 난다면, 사용자들은 시스템을 신뢰하지 못하게 될 것이다.

· 시스템 중심의 성능 관련 평가 척도

- 처리량(Throughput): 단위시간 내에 실행을 완료 시킬 수 있는 프로세스의 수

- 처리 이용률(Processor utilization): 전체 시간 중에 처리기가 바쁘게 실행을 한 시간의 비율

· 시스템 중심의 기타 평가 척도

- 공정성(Fairness):

- 우선순위 부여(Enforcing Priority):

- 균형있는 자원 활용(Balancing Resources):

* 우선순위(Priorities)

- 스케줄러는 항상 높은 우선순위의 프로세스를 선택

- 문제점: 순수 우선순위 기반 스케줄링 방식에서 높은 우선순위의 프로세스가 계속적으로 생성되고 낮은 우선순위의 프로세스가 계속 CPU를 할당 받지 못해 기아(Starvation) 발생

* 결정 모드

- 비선점(Non-preemptive)

· 프로세스가 일단 실행 상태(Running State)에 진입하면 종료되거나 자발적으로 CPU를 놓을 때까지는 CPU를 빼앗기지 않는다.

- 선점(Preemptive)

· 현재 실행 중인 프로세스라고 할지라도 운영체제에 의해 인터럽트가 걸려 비자발적으로 준비 큐로 이동된다.

· CPU를 빼앗을 수 있다.

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

Interrupt  (2) 2009.10.22
Scheduling  (0) 2009.10.22
Trace of Process  (2) 2009.10.12
HAL(Hardware Abstraction Layer)  (0) 2009.10.07
프로세스  (0) 2009.10.07
Posted by 초상큼발랄
l