마지막챕터 : 컴퓨터
[ 소통을 원하지는 않습니다 ]
2025/01/19 (3)
[혼공컴운] 6주차_컴퓨터 구조+운영체제 14장~15장 & 책리뷰

Chapter 14 가상 메모리(Virtual Memory)

14-1 연속 메모리 할당

- 스와핑(Swapping)은 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리로 들여보내는 메모리 관리 기법입니다. 

- 최초 적합(First fit) 방식은 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식입니다. 

- 최적 적합(Best fit) 방식은 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식입니다. 

- 최악 적합(Worst fit) 방식은 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식입니다. 

- 외부 단편화(External fragmentation)는 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상을 의미합니다. 


14-2 페이징을 통한 가상 메모리 관리

- 페이징(Paging)은 물리 주소 공간을 프레임(Frame) 단위로 자르고 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법입니다. 

- 페이지 테이블(Page table)을 통해 페이지가 적재된 프레임을 찾을 수 있습니다. 페이지 테이블에는 페이지 번호와 프레임 번호뿐 아니라 유효 비트(Valid bit), 보호 비트(Protection bit), 접근 비트(Reference bit), 수정 비트(Modified bit) 등이 있습니다. 

- PTBR(Page Table Base Register)은 각 프로세스의 페이지 테이블이 적재된 주소를 가리킵니다. 

- TLB(Translation Lookaside Buffer)는 페이지 테이블의 캐시 메모리 역할을 수행하기 위해 페이지 테이블의 일부를 저장합니다. 

 

 


14-3 페이지 교체와 프레임 할당

- 요구 페이징(Demand paging)은 페이지가 필요할 때에만 메모리에 적재하는 기법입니다. 

- 페이지 교체 알고리즘(Page Replacement Algorithm)은 FIFO(First-In First-Out), 최적(Optimal), LRU(Least Recently Used) 페이지 교체 알고리즘 등이 있습니다.

- 스래싱(Thrashing)이란 지나치네 비번한 페이지 교체로 인해 CPU 이용률이 낮아지는 문제를 뜻합니다. 

- 프레임 할당(Frame allocation) 방식에는 균등 할당(Equal allocation)과 비례 할당(Proportional allocation), 작업 집합(Working set)모델과 페이지 폴트율(Page fault rate) 기반 프레임 할당 방식이 있습니다.

 

 

 

 

Chapter 15 파일 시스템(File System)

15-1 파일과 디렉터리

- 파일(File)은 의미 있고 관련 있는 정보를 모은 논리적인 단위입니다. 

- 운영체제는 파일의 확장자(Extension)를 통해 파일의 유형을 파악할 수 있습니다.

- 파일의 속성(Attribute)에는 파일과 관련된 다양한 부가 정보들이 있습니다. 

- 디렉토리(Directory)를 이용하면 여러 개의 파일 또는 디렉터리를 묶어 관리할 수 있습니다. 

- 경로(Path)는 디렉터리를 이용해 위치를 특정 짓는 정보입니다. 

- 절대 경로(Absolute path)는 루트 디렉터리부터 시작하는 경로이고, 상대 경로(Relative path)는 현재 디렉터리부터 시작하는 경로입니다. 

 


15-2 파일 시스템
- 파티셔닝(Partitioning)은 하드 디스크나 SSD처럼 용량이 큰 저장 장치를 하나 이상의 논리적인 여러 단위로 구획하는 작업을 의미합니다. 

- 포매팅(Formatting)이란 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 수 있게 하는 작업을 의미합니다. 

- 연속 할당(Contiguous allocation)은 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식입니다. 

- 연결 할당(Linked allocation)은 각 블록 일부에 다음 블록의 주소를 저장하여 블록들을 연결 리스트 형태로 관리하는 방식입니다. 

- 색인 할당(Indexed allocation)은 파일의 모든 블록 주소를 색인 블록에 모아 관리하는 방식입니다. 

- FAT 파일 시스템은 FAT(File Allocation Table)를 이용하는 연결 할당 기반의 파일 시스템입니다. 

- 유닉스 파일 시스템은 i-node를 이용하는 색인 할당 기반의 파일 시스템입니다. 

 

 

** 15장 파일시스템의 15-1 파일과 디렉토리 확인문제 3번(451쪽)의 답지 설명이 이상합니다. 

3. 디렉토리와 관련한 설명으로 옳지 않은 것을 고르세요. 

디렉토리는 보조기억장치에 저장되어 있지 않습니다. 

② 디렉토리 엔트리에는 해당 디렉터리에 저장된 대상들에 대한 정보가 담깁니다. 

③ 운영체제는 디렉터리를 다루는 다양한 시스템 호출을 제공합니다. 

④ 최상위 디렉토리를 루트 디렉터리라고 합니다. 

문제에서 "옳지 않은 것"을 고르라고 했으니 1번이 맞는데, 493쪽 답지 설명에도 "디렉터리도 파일과 동일하게 보조기억장치에 저장되어 있지 않습니다"라고 씌여 있네요. 440쪽에 나와 있듯이 "파일과 디렉토리는 보조기억장에 있는 데이터 덩어리일 뿐인데,"라고 한다면 답지 설명에는 "디렉토리도 파일처럼 보조기억장치에 저장되어 있습니다."라고 설명되어 있어야 하지 않을까 싶습니다. ^^;;

 

 

 

 

[기본 숙제]

400쪽의 확인 문제 1번 풀고 인증하기.

1. 메모리 할당 방식에 대한 설명으로 올바른 것을 다음 보기에서 찾아 써 보세요. 

보기: 최초 적합, 최적 적합, 최악 적합

● (① 최초 적합): 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식

● (② 최악 적합): 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식 

● (③ 최적 적합): 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식

 

 

 

[추가 숙제] 

Ch.14(14-3) 프로세스가 사용할 수 있는 프레임이 3개 있고, 페이지 참조열이 '2313523423' 일 때 LRU 페이지 교체 알고리즘으로 이 페이지를 참조한다면 몇 번의 페이지 폴트가 발생하는지 풀어보기

출처: 혼자 공부하는 컴퓨터 구조 + 운영체제. 한빛미디어

 

2,3,1,3,5

페이지 참조열에 5가 들어왔을 때, 프레임에는 2,3,1 이렇게 3개만 있으므로 페이지폴트가 발생하고 그 중 가장 오랫동안 사용하지 않은 2가 보조기억장치로 이동하고 그 자리에 5가 들어갑니다. - 페이지 폴트 발생.(1회)

 

** 프레임이 3개인 구성에서 가장 오랫동안 사용하지 않은 페이지가 선택되는 과정은 다음과 같습니다.

1. 프레임 3칸에 페이지가 모두 찰 때까지는 무조건 페이지 참조열 값을 입력합니다. 

2. 프레임에 빈 칸이 없고, 새로 요청받은 페이지 참조열 값이 3칸의 프레임 중에 있는 경우, 해당 프레임 값을 사용합니다.

3. 프레임에 빈 칸이 없고, 새로 요청받은 페이지 참조열 값이 프레임에 없는 경우, 3개의 프레임 중에서 가장 오래된 값을 선택해서 보조저장장치로 이동시킵니다. 

4. 프레임에 없는 5가 페이지 참조열에 들어온 경우, 5를 기준으로 왼쪽 방향으로 요청받아왔던 페이지들을 3칸(프레임 갯수)까지 되집어 보되, 중복된 페이지들은 무시합니다.

5. 가장 최근에 접근했던 순서(왼쪽 방향)대로 보자면 3, 1, 2가 되며(3이 2번 나왔을 때 더 오래된 3은 무시, 다시 말해 중복된 페이지가 보일 때는 최근 접근했던 페이지로만 카운트), 3번째 페이지인 2를 보조저장장치로 이동시키고, 그 빈 자리에 5를 채워 넣습니다. 

 

2,3,1,3,5,2

페이지 참조열에 2가 들어왔을 때, 프레임에는 5,3,1 이렇게 3개만 있으므로(2는 바로 이전 차례에 보조기억장치로 이동) 5,3,1 중 가장 오랫동안 사용하지 않은 1이 보조기억장치로 이동하고 그 자리에 다시 2가 들어갑니다. - 페이지 폴트 발생.(2회)  

 

2,3,1,3,5,2,3,4

페이지 참조열에 4가 들어왔을 때, 프레임에는 5,3,2 이렇게 3개만 있으므로 5,3,2 중 가장 오랫동안 사용하지 않은 5가 보조기억장치로 이동하고 그 자리에 다시 4가 들어갑니다. - 페이지 폴트 발생.(3회) 

 

 

지은이 강민철 github

 

https://github.com/kangtegong

 

https://minchul.net/

 

 

 

 

 

 

 

 

[책리뷰] 

 

하찮은 레벨의 IT관련 지원관리업무를 맡고 있기에 가끔 주변 사람들에게 컴퓨터 구성이나 윈도우 및 응용 프로그램의 사용법에 대해 알려줄 일이 있어서 몇 년마다 주기적으로 컴퓨터 기본 서적들을 보고 있습니다. 

 

최근에 읽은 "혼자 공부하는 컴퓨터 구조 + 운영체제"는 개발자를 지망하는 비전공자 분들을 위해 씌여진 것으로 보이는데, 너무 간소화된 것이 아닌가 싶을 정도로 쉽게 쓰려고 노력한 흔적이 많이 보입니다. 그러다 보니 약간 어려운 내용의 고전(?) 운영체제 서적을 읽었던 사람이 복습하려고 하면 혼동스러운 부분이 있어서 비교하게 되는 경향이 있습니다. 덕분에 고인물 지식이 갱신되고, 몰랐던 부분이 꽤 있었다는 걸 인정하게 되는 책으로 보입니다. 

 

설명에 필요한 삽화도 적절하고 풍부하게 배치해서 읽는 부담을 많이 줄였습니다. 다만, 쉽게 쓰기 위해 초심자들이 고민하거나 깊이있게 들여다 봐야할 부분을 잘 드러나지 않게 한 것이 아닐까 하는 기우(?)가 들기도 합니다. 

 

이 책을 읽으면서 초심자들에게 필요한 입문서가 갖추면 좋을 만한 개인적인 지침을 정리할 수 있어서 좋았습니다. 잘 읽었습니다. ^^;; 


01 ~ 03장에서는 컴퓨터 구조를 알아야 하는 이유 및 컴퓨터 구조에 대한 큰 그림, 그리고 컴퓨터를 어떻게 작동시키는지를 알아봅니다. 
Chapter 01 컴퓨터 구조 시작하기
Chapter 02 데이터
Chapter 03 명령어

 

** 사실 굉장히 당연한 내용인데, 3장이나 할애한 것이 아닌가 싶습니다. 개발자로 성장하려는 뜻을 가지고 있는 분들이라면 응용 프로그램의 개발환경이나 실행환경인 컴퓨터와 운영체제에 대한 기본지식은 충분히 갖출 필요가 있다고 봅니다. 전 폰노이만 구조 외에도 하버드 구조라는 게 있다는 걸 얼마 전에 알았습니다. ^^;;


04장 ~ 08장에서는 컴퓨터의 네 가지 핵심 부품, CPU, 메모리, 보조기억장치, 입출력장치에 대해 하나씩 살펴봅니다. 

Chapter 04 CPU와 작동 원리
Chapter 05 CPU 성능 향상 기법
Chapter 06 메모리와 캐시 메모리
Chapter 07 보조기억장치
Chapter 08 입출력장치

 

** 부품 중심의 설명이니 메인보드도 별첨(?) 정도로 같이 들어가면 좋았을 것 같습니다. 


09장 ~ 10장에서는 운영체제란 무엇인지, 프로세스와 스레드란 무엇인지, 멀티프로세스와 멀티스레드는 어떤 차이가 있는지를 이해합니다. 
Chapter 09 운영체제 시작하기
Chapter 10 프로세스와 스레드


** 흔히들 운영체제의 목표, 역할이라고 딱딱하게 씌여져 있던 부분이죠.  


11장 ~ 13장에서는 CPU 스케줄링이란 무엇이며, 동시에 프로그램(프로세스)을 실행할 때 반드시 고려해야 할 동기화와 해결해야 하는 문제인 교착 상태에 대해 다룹니다. 
Chapter 11 CPU 스케줄링
Chapter 12 프로세스 동기화
Chapter 13 교착 상태

** 스케줄링, 동기화, 교착상태 나오면 누구나 정신이 혼미해지지 않을까 싶습니다. 읽을 때는 고개를 끄덕이다가 돌아서면 설명이 잘 안되는.. 


14장 ~ 15장에서는 운영체제의 메모리 관리 기법인 가상 메모리 관리에 대해 학습하고, 파일 시스템에 대해 학습합니다. 
Chapter 14 가상 메모리
Chapter 15 파일 시스템

 

** 이제는 파일시스템에 NTFS, GPT(GUID Partition Table) 같은 것도 다룬 책이 나왔으면 좋겠습니다. 

  Comments,     Trackbacks
[혼공컴운] 5주차_컴퓨터 구조+운영체제 12장~13장

 

Chapter 12 프로세스 동기화

12-1 동기화란

- 동기화(Synchronization)는 특정 자원에 접근할 때 한 개의 프로세스만 접근하게 하거나 프로세스를 올바른 순서대로 실행하게 하는 것을 의미합니다. 

- 공유 자원(Shared resource)은 공동으로 사용하는 자원으로, 전역 변수가 될 수도 있고, 파일이 될 수도 있고, 입출력장치, 보조기억장치가 될 수도 있습니다. 

- 임계 구역(Critical section)은 공유 자원에 접근하는 코드 중 동시에 실행하면 문제가 발생하는 코드 영역을 의미합니다. 임계 구역에 진입한 프로세스가 있다면 다른 프로세스는 임계 구역 밖에서 기다려야 합니다. 

- 상호 배제(Mutual exclusion)는 한 프로세스가 임계 구역에서 작업 중이면 다른 프로세스가 임계 구역에 들어갈 수 없도록 제어하는 것입니다. 


12-2 공유 자원과 임계 구역

- 뮤텍스 락(MUTEX lock: MUTual EXclusion lock)은 임계 구역을 잠금으로써 프로세스 간의 상호 배제를 이룹니다. 

- 세마포(Semaphore)는 공유 자원이 여러 개 있는 임계 구역 문제도 해결할 수 있는 동기화 도구입니다. 

- 모니터(Monitor)는 세마포에 비해 사용자가 사용하기 편리한 동기화 도구로 조건 변수를 사용합니다. 

 

 

 


Chapter 13 교착 상태

13-1 교착 상태(Deadlock)란

- 교착 상태는 일어나지 않을 사건을 기다리며 무한히 대기하는 현상을 의미합니다. 

- 식사하는 철학자 문제(Dining philosophers problem)는 교착 상태의 발생을 보여 주는 예시입니다. 

- 자원 할당 그래프(Resource-allocation graph)를 이용해 교착 상태를 표현할 수 있습니다. 

- 교착 상태 발생 조건은 상호배제(Mutual exclusion), 점유와 대기(Hold and wait), 비선점(Nonpreemptive), 원형 대기(Circular wait)입니다. 


13-2 교착 상태 해결 방법

- 교착 상태 예방은 교착 상태의 발생 조건 중 하나를 충족하지 못하게 하는 방법입니다. 

- 교착 상태 회피는 안전 상태를 유지할 수 있는 경우에만 자원을 할당하는 방법입니다. 

- 교착 상태 검출 후 회복은 교착 상태 발생 여부를 주기적으로 검사하고, 교착 상태가 발생하면 그때그때 회복하는 방식입니다. 

 

 

 

 

[기본 숙제] 

363쪽의 확인 문제 1번 풀고 인증하기.

1. 뮤텍스 락과 세마포에 대한 설명으로 옳지 않은 것을 고르세요.

① 뮤텍스 락은 임계 구역을 잠근 뒤 임계 구역에 진입함으로써 상호 배제를 위한 동기화를 이룹니다.

② 세마포는 공유 자원이 여러 개 있는 상황에서도 이용할 수 있습니다. 

③ 세마포를 이용해 프로세스 실행 순서 제어를 위한 동기화도 이룰 수 있습니다. 

세마포를 이용하면 반드시 바쁜 대기를 해야 합니다. 

 

 

 

 

[추가 숙제]

Ch.12(12-1) 임계 구역, 상호 배제 개념을 정리하기.

 

상호 배제(Mutual Exclusion)란 여러 프로세스나 스레드가 동시에 공유 자원(Shared resource)에 접근할 수 없도록 하는 기법이고, 임계 구역(Critical Section)은 프로세스나 스레드가 공유 자원에 접근할 때 사용하는 코드의 특정 부분을 가리키며, 임계 영역에 대한 상호 배제를 보장하는 것이 중요합니다.

 

 

상호 배제를 구현하는 다양한 동기화 기법은 다음과 같습니다. 

뮤텍스(Mutex): 뮤텍스를 사용하여 서로의 접근을 제어할 수 있습니다. 하나의 스레드가 자원을 사용할 때 뮤텍스를 잠그고, 사용이 끝나면 해제하여 다른 스레드가 접근할 수 있도록 합니다.

세마포(Semaphore): 세마포는 일정 수의 스레드가 동시에 자원에 접근할 수 있도록 허용하며, 이를 통해 더 유연한 동기화가 가능합니다.

모니터(Monitor): 모니터는 객체 지향 프로그래밍에서 자원 접근을 제어하는데 유용하며, 임계 영역을 쉽게 정의하고 관리할 수 있습니다.

조건 변수(Condition Variables): 스레드가 특정 조건이 충족될 때까지 대기하도록 하고, 다른 스레드가 그 조건을 만족시키면 대기 중인 스레드가 다시 실행되도록 하는 기법입니다.

 

 

임계 영역의 효율적인 설계를 위한 주요 원칙들은 다음과 같습니다. 

상호 배제(Mutual Exclusion): 한 프로세스가 임계 구역에 진입했다면, 다른 프로세스는 임계 구역 안으로 들어올 수 없습니다. 
진행(Progress): 임계 구역에 진입한 프로세스가 없다면, 임계 구역에 들어가려는 프로세스는 임계 구역 안으로 들어갈 수 있어야 합니다.
유한 대기(Bounded Waiting): 어떤 프로세스가 임계 구역에 접근하려고 한다면, 그 프로세스는 언젠가는 임계 구역 안으로 들어올 수 있어야 합니다. 

 

 

[결론] 말이야 쉽지요. ㅋㅋㅋ

  Comments,     Trackbacks
[혼공컴운] 4주차_컴퓨터 구조+운영체제 09장~11장

Chapter 09 운영체제 시작하기

09-1 운영체제(Operating System)를 알아야 하는 이유

- 운영체제는 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램입니다. 

- 운영체제와의 대화를 통해 하드웨어와 프로그램을 더 깊이 이해하고, 문제 해결의 실마리를 찾을 수 있습니다. 

 

** 운영체제는 컴퓨터 구조의 각 부품이 제 성능을 발휘할 수 있도록 전반적인 관리와 자원 할당을 지원해주는 소프트웨어. 초심자에게는 컴퓨터 구조와 운영체제에 대해 같이 알아가는 게 좋은 방법이라고 생각됨.

 

09-2 운영체제의 큰 그림

- 커널(Kernel)은 운영체제의 핵심 기능을 담당합니다. 

- 이중 모드(Dual Mode)는 CPU가 명령어를 실행하는 모드를 커널 모드와 사용자 모드로 구분하는 방식입니다. 

- 시스템 호출(System Call)은 운영체제의 서비스를 제공받기 위해 커널 모드로 전환하는 방법입니다. 

- 대표적인 운영체제 서비스로 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리가 있습니다. 

 

 

 


Chapter 10 프로세스와 스레드

10-1 프로세스(Process) 개요

- 프로세스는 실행 중인 프로그램입니다. 프로세스의 종류에는 포그라운드 프로세스 (foreground process)와 백그라운드 프로세스(Background process)가 있습니다. 

- 운영체제는 프로세스 제어 블록(PCB, Process Control Block)을 통해 여러 프로세스를 관리합니다. 

- 프로세스 간에 실행을 전환하는 것을 문맥 교환(Context switching)이라고 합니다. 

- 프로세스 사용자 영역에 크게 코드 영역(Code segment), 데이터 영역(Data segment), 스택 영역(Stack segment), 힙 영역(Heap segment)으로 나뉘어 배치됩니다. 

 

** 프로세스 제어 블록(PCB)에 들어 있는 목록을 알아두면 좋을 듯 합니다.


10-2 프로세스 상태(Process State)와 계층 구조

- 프로세스 상태에는 생성, 준비, 실행, 대기, 종료가 있습니다.

- 프로세스가 다른 프로세스를 생성한 경우 프로세스를 생성한 프로세스를 부모 프로세스, 생성된 프로세스를 자식 프로세스라고 부릅니다. 

- 많은 운영체제는 프로세스가 프로세스를 낳는 프로세스 계층 구조로 프로세스들을 관리합니다.

출처: 혼자 공부하는 컴퓨터 구조 + 운영체제. 프로세스 상태 다이어그램. 한빛미디어

 

10-3 스레드(Thread)

- 스레드는 프로세스 내의 실행 흐름 단위입니다.

- 여러 프로세스를 동시에 실행하는 것을 멀티프로세스라고 하고, 여러 스레드로 프로세스를 동시에 실행하는 것을 멀티스레드라고 합니다.

 

** 스레드(Thread)는 명령어의 한 줄기, 프로그램 제어 흐름 한 가닥 정도를 나타낸다고 합니다. 

 

 

 


Chapter 11 CPU 스케줄링

11-1 CPU 스케줄링 개요(CPU scheduling)

- CPU 스케줄링은 공정하고 합리적으로 CPU 자원을 배분하는 방법을 의미합니다. 

- 프로세스는 우선순위(Priority)를 가지고 있고, 이는 PCB에 명시됩니다. 

- 운영체제는 효율적인 스케줄링을 위해 스케줄링 큐를 사용합니다. 

- 준비 큐(Ready queue)는 CPU 할당을 기다리는 프로세스들을 위한 큐를 의미합니다. 

- 대기 큐(Waiting queue)는 입출력장치를 기다리는 프로세스들을 위한 큐를 의미합니다. 

- 선점형 스케줄링(Preemptive scheduling)은 프로세스가 이용 중인 자원을 빼앗을 수 있습니다. 

- 비선점형 스케줄링(Non-preemptive scheduling)은 프로세스가 이용 중인 자원을 빼앗을 수 없습니다. 

 

11-2 CPU 스케줄링 알고리즘
- 선입 선처리 스케줄링(FCFS 스케줄링, First Come First Served Scheduling) 알고리즘은 준비 큐에 삽입된 순서대로 CPU를 할당합니다. 

- 최단 작업 우선 스케줄링(Shortest Job First Scheduling) 알고리즘은 준비 큐에 삽입된 프로세스들 중 CPU 사용 시간의 길이가 가장 짧은 프로세스부터 CPU를 할당합니다. 

- 라운드 로빈 스케줄링(Round Robin Scheduling) 알고리즘은 정해진 시간만큼만 돌아가며 CPU를 할당합니다. 

- 우선순위 스케줄링(Priority Scheduling) 알고리즘은 가장 높은 우선순위를 가진 프로세스에 CPU를 할당합니다. 

- 다단계 피드백 큐 스케줄링(Multilevel Feedback Queue Scheduling) 알고리즘은 프로세스들이 큐 사이를 이동할 수 있는 다단계 큐 스케줄링입니다. 

 

 

 

[기본 숙제] 

304쪽 확인 문제 1번 풀고 인증하기

1. 다음은 프로세스 상태를 보여주는 상태 다이어그램입니다. ①부터 ⑤까지 올바른 상태를 적어 보세요. 

출처: 혼자 공부하는 컴퓨터 구조 + 운영체제. 한빛미디어.

생성    ② 준비    ③ 실행    ④ 종료    ⑤ 대기

 

 

[추가 숙제] 

Ch.11(11-2) 준비 큐에 A,B,C,D 순으로 삽입되었다고 가정했을 때, 선입 선처리 스케줄링 알고리즘을 적용하면 어떤 프로세스 순서대로 CPU를 할당받는지 풀어보기 

 

선입 선처리 스케줄링(FCFS, First Come First Served Scheduling)의 경우, 준비 큐(Ready Queue)에 A, B, C, D 순서로 삽입되면 들어온 순서대로 A, B, C, D가 CPU를 할당받습니다.
이때 처리시간이 가장 긴 작업이 가장 먼저 들어온 경우, 그 뒤에 있는 짧은 작업들도 덩달아 대기해야 하는 호위 효과(Convoy Effect)가 발생합니다. '호위효과'란 군대나 행진에서 가장 느린 부대나 차량 때문에 마치 호위대처럼 전체 진행이 지연되는 상황을 비유적으로 뜻하는 말이라고 합니다. 

알고리즘이 단순한 것이 이점일 수 있지만, 최악의 경우에는 시스템의 전체적인 성능에 많은 악영향을 줍니다.  

  Comments,     Trackbacks