제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형

Slides:



Advertisements
Similar presentations
Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved. 제7강제7강.
Advertisements

의료자원 규제현황과 개선방향 자원평가실. 의료자원 관리 개요 규제개혁 토론과제.
아름다운 이들의 행복한 길음안나의 집.
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
CDMA SW 구조 AIITQC 서울본원교육장 양 종 윤.
연 합 남 전 도 회 월 례 회 1부 예배- 찬 송 장 다같이 2011년 1월 2일 1부 예배- 찬 송 장 다같이 기 도
사 업 계 획 2011년 제1호 - 2월 1일 2011 주 안에서 소통하며 화합하고 참여하며 헌신하는 남신도회
Chapter 1. 운영체제의 개요 이태호.
Mar OSEK/VDK Woo Dong Kyun.
유 제 흥 지원업체 분석 및 잡서칭 스킬 유 제 흥
소프트웨어와 운영체제.
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
제 2장 컴퓨터 구조.
정보통신실습 및 특강(5)
커뮤니케이션 스킬 UP -전화매너- ..
Operating Systems Overview
운영체제 레프토 (4장 CPU 스케줄링) b반 박상수.
Uniprocessor Scheduling
제 2 장 프로세스 관리 2.1 개요 프로세스 스케줄링은 준비완료(ready) 상태에 있는 프로세스들 중 어느 것을 중앙처리장치에 할당시킬 것인가를 결정 중앙처리장치 처리율(throughput)의 최대화와 반환 시간(turnaround time)의 최소화 2.2 프로세스.
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
운영체제 (Operating Systems)
프로세스 관리.
6장 단일 프로세서 스케줄링.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
1. 스케줄링 개요 [그림 6-16] 프로세스의 반환, 대기, 반응 시간
Ch 14. System Thread.
2.2 CPU 스케줄링의 목적과 유형 스케줄링의 목적
Lecture #3 프로세스(Process).
운영체제 (OS: Operating System)
CPU스케줄링(CPU Scheduling) ~
SunnyKwak (sunnykwak.egloos.com) 2005년 2월 1일
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Java의 정석 제 12 장 쓰레드(thread) Java 정석 남궁성 강의
2 운영체제 소개.
Chapter2 프로세스란 조은성.
Lecture #3 프로세스(Process).
제3,4,5장 프로세스, 스레드 관리 CPU 스케줄링.
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
제2장 프로세스 이나현.
Rhapsody + MFC 개발 가이드.
제5장 CPU스케줄링(CPU Scheduling)
Subject : Thread Written by: 김형근,류명운.
운영체제(Operating System)
운영체제 (Operating Systems) (Memory Management Strategies)
Linux/UNIX Programming
컴퓨터의 구성 (하드웨어) 기술ㆍ가정 1학년 Ⅴ. 컴퓨터와 정보처리 〉 1.컴퓨터의 구조와 원리 (2 / 5) 1. 제작의도
제7강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
23. Unix 시스템 커널. 개요 커널의 기본 서비스 커널의 특징 참고서적 프로세스 관리 장치 관리 파일 관리 가상 메모리
운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)
제안 목적 고객성향 분석으로 매출 증대 유사업체 분석으로 신상품 홍보 원가요소 분석 및 피드백으로 원가율 관리
제4장 CPU 스케줄링 이나현.
청각기관의 구조와 기능2 옥정달.
Lecture #3 프로세스(Process) 신라대학교 컴퓨터공학과 - 운영체제.
8. 리눅스의 내부 군자삼락 [君子三樂] 청출어람이청어람 [ 靑出於藍而靑於藍 ] Why Linux ?
운영체제 학번 : 이름 : 이원석 반 : 2B.
(제작자: 임현수)모둠:임현수,유시연,유한민
6월 1주 주간메뉴표 NEW 엄마손 조식 쉐프 삼촌 중식 참새 방앗간 석식 ◎원산지 안내 : 쌀(국내산)
성경퀴즈 여호수아1장 3장 복습게임.
데이터 베이스의 내부 구조.
시민이 체감하는 편리한 건축인허가 절차 개선 추진.
Lecture #3 프로세스(Process).
Linux/UNIX Programming
Lecture #7 CPU Scheduling.
Virtual Machine Management
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
2. 프로세스 B 안우진 - 운영체제 -.
CPU 스케줄링 장우영.
3장 – 병행 프로세스 A 김정문.
Presentation transcript:

제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형 2.3 비선점 스케줄링 알고리즘 2.4 선점 스케줄링 알고리즘 2.5 응용 알고리즘 2.6 스케줄링 기법의 비교 2.7 스레드의 개념

2.1 프로세스의 개념 (1) 프로세스의 정의 ■ 다중 프로그래밍 운영체제  몇 개의 프로그램이 주기억장치에 함께 2.1.1 프로세스의 정의와 상태 (1) 프로세스의 정의 ■ 다중 프로그래밍 운영체제  몇 개의 프로그램이 주기억장치에 함께 적재되어 시행.  CPU의 유휴시간이 없도록 함 : I/O 작업 시  CPU의 활용률을 증가 시켜서 CPU 의 “처리 능력 (throughput)”을 극대화 시킴. ★ Throughput : 일정시간 내에 처리한 일의 양

각 작업들은 프로세서(CPU)가 처리하는 일의 단위인 ■ 컴퓨터 사용자의 작업(JOB) 제출시 : 각 작업들은 프로세서(CPU)가 처리하는 일의 단위인 프로세스( process)로 나뉘어져 작업이 시행됨. ... JOB1 프로세스 2 프로세스 1 ... JOB2 프로세스 2 프로세스 1

 사용자가 제출한 작업(프로그램)에 대한 시행.  프로그램이 요구하는 각종 사항과 오류 조치, ■ CPU의 업무  사용자가 제출한 작업(프로그램)에 대한 시행.  프로그램이 요구하는 각종 사항과 오류 조치, 인터럽트 처리 등의 각종 시스템 활동 처리. ■ CPU의 활동 대상  “프로세스” ■ 다중 프로그래밍 환경 수많은 “프로세스”가 발생, 어떤 프로세스를 언제 - 어떻게 CPU에게 할당하고 회수해 가면서 CPU의 효율을 극대화할 것인가 하는 것이 중요 관심사임.

 프로세스 제어 블록(PCB)을 가진 프로그램 ■ 프로세스란 ?  실행중인 프로그램, 살아 있는 프로그램  언제든지 실행 가능한 프로그램  프로세스 제어 블록(PCB)을 가진 프로그램 - Process Control Block  CPU가 할당되는 단위 PCB를 갖고 있으면서, 현재 실행 중이거나 곧 실행 가능하며, CPU를 할당 받을 수 있는 작업 단위.

■ CPU 버스트와 I/O 버스트  프로세스 제어 블록.  특정 프로세스에 대한 각종 모든 정보를 ■ PCB (Process Control Block)  프로세스 제어 블록.  특정 프로세스에 대한 각종 모든 정보를 갖고 있음. (2) 프로세스의 상태 ■ CPU 버스트와 I/O 버스트  모든 프로세스는 “CPU 버스트(burst)” 와 “I/O 버스트” 가 교대로 나타남.

“CPU 버스트” 를 가지며, “I/O 버스트”는 입출력 요구시 발생함. - 모든 프로세스의 시작과 끝은 “CPU 버스트” 를 가지며, “I/O 버스트”는 입출력 요구시 발생함. 2.1

■ “CPU 중심 작업” 과 “I/O 중심 작업” 이란? “지수형” 또는 “초지수형” 곡선 형태를 가짐.

 그림 2.2의 A지점 : I/O 중심 작업  그림 2.2의 B지점 : CPU 중심 작업 2.2

2) 프로세스의 간단한 상태 모형 : 2개 상태 ■ “CPU 바운드”와 “I/O 바운드”의 연속 : “실행이 되는 상태(running state)” “비실행 상태(not running state)” 의 2가지 상태로 구분됨. 2.3

3) 프로세스 상태의 세분화 : 5개 상태  준비 상태(Ready)와 대기 상태(Block)로 구분. ■ 비실행 상태의 세분화  준비 상태(Ready)와 대기 상태(Block)로 구분.  준비(Ready) 상태 - CPU의 할당만을 기다리고 있는 상태 - 다음에 할 일은 오직 CPU 작업임.  대기(Block) 상태 - CPU를 반납하여, I/O 작업을 하는 중이거나 어떤 사건(event)의 종료를 기다리고 있는 상태.

+ “생성(New)”와 “종료(Exit)”상태를 추가함.  생성(New) 상태 ■ 프로세스의 상태 : “준비” + “실행” + “대기” + “생성(New)”와 “종료(Exit)”상태를 추가함.  생성(New) 상태 - 수행을 원하는 새로운 프로세스의 입력이나 OS 자체 또는 현존하는 프로세스에 의해서 생성. - 일정 개수 이하만 생성됨. (시스템 제약 사항 고려 : PCB 개수)  종료(Exit) 상태 - 더 이상 CPU를 할당 받을 필요가 없을 때. - 프로세스 종료 시에는 그 때까지의 각종 상황 정보가 파악될 때까지 일시 보관하여야 함.

■ 5가지의 프로세스 상태 2) 준비(READY) : CPU 사용을 위한 실행 준비 상태 ■ 5가지의 프로세스 상태 1) 생성( NEW) : 프로세스가 새롭게 생성된 상태 2) 준비(READY) : CPU 사용을 위한 실행 준비 상태 3) 실행(RUN) : CPU를 차지하여 현재 수행되고 있는 상태로, 오직 1개의 프로세스만 실행 상태에 있음. 4) 대기(BLOCK) : 실행 상태의 프로세스가 I/O 요구 등의 사건 발생으로 CPU 를 양도한 후, 요구한 입출력이 종료될 때까지 대기하고 있는 상태. 5) 종료(EXIT) : 모든 수행 가능 프로세스 상태에서 종료된 상태 (더 이상의 CPU 사용 요구가 없음)

(3) 프로세스의 상태 전이 2.4

[ 상태 전이가 되는 상황 ] 1) 생성 준비 : Admit - 준비 큐 (Ready Queue) 의 크기가 제한되어 있다. [ 상태 전이가 되는 상황 ] 1) 생성 준비 : Admit - 준비 큐 (Ready Queue) 의 크기가 제한되어 있다. - 준비 큐가 비어 있을 때 생성 상태에서 준비 상태로 전이됨. - 작업 스케줄러(job scheduler)가 담당. 2) 준비  실행 : Dispatch - 준비 큐에 있는 프로세스 중에서 하나의 프로세스를 선택하여 CPU를 할당 받게 함. - 프로세스 스케줄러(process scheduler)가 담당

3) 실행  준비 : Timer Run Out ① CPU를 할당 받은 프로세스가 “ CPU의 제한된 사용시간 ” 을 모두 쓴 경우에 전이됨. [ CPU의 제한 사용시간 = 시간 조각(time slice) ] ② CPU 스케줄링 정책에 의하여 “ 우선순위 ” 가 높은 프로세스에게 CPU를 양보할 때 전이됨. ③ 운영 체제 자체의 CPU 서비스 요청 시 전이됨.

4) 실행  대기 : Block - CPU를 할당 받은 프로세스가 I/O 요구, 5) 대기  준비 : Wake-up 원할 때 상태가 전이됨. 5) 대기  준비 : Wake-up - 대기 중이던 어떤 사건(조건)의 처리가 끝났을 때 준비 상태로 전이됨 : 다음에는 오직 CPU 작업 6) 실행  종료 : Release - 프로세스의 정상 / 비정상 종료시 전이됨.

3-1

2.1.2 연기/재동작이 있는 프로세스의 상태 전이 ■ 프로세스에 대한 작업 : 선택될 때, PCB가 만들어져서 프로세스를 2.1.2 연기/재동작이 있는 프로세스의 상태 전이 ■ 프로세스에 대한 작업 : 생성, 파괴 작업 + 연기 작업, 재동작 작업 ▶ 생성 작업(creation ) 운영 체제에 의해 어떤 프로그램 (JOB) 이 선택될 때, PCB가 만들어져서 프로세스를 생성시키는 작업. ▶ 파괴 작업(destroy) 프로세스가 더 이상 필요 없게 되었을 때, PCB를 회수하여 프로세스를 소멸시키는 작업.

2.1.2 -- 계속 - 프로세스의 현재 상태를 더 이상 변화 시키지 못하도록 잠시 중단 시키는 작업. 2.1.2 -- 계속 - ▶ 연기 (suspend) 작업 프로세스의 현재 상태를 더 이상 변화 시키지 못하도록 잠시 중단 시키는 작업. ▶ 재동작 (resume) 작업 연기된 프로세스가 연기된 원인의 제거로 인하여 다시 동작 될 수 있도록 하는 작업.

(1) 프로세스의 연기 원인 ▶ 운영 체제 자신이 전체적인 효율을 높이기 위하여, 충분한 주기억 공간을 확보할 필요가 있을 때, 주기억 공간에 들어 있는 일부의 프로세스들을 외부의 보조기억 장치로 교체(swap out) 시킴. ▶ 처리되는 프로세스가 어떤 문제에 직면한 것을 컴퓨터 조작자나 운영 체제가 발견하여, 이를 해결할 수 있을 때까지 프로세스를 연기. ▶ 통신 선로의 고장 등으로 더 이상, 작업이 진행될 필요가 없을 때 연기.

▶ 대화식의 처리(interactive processing)를 하는 프로세스의 경우, 정상 수행을 위한 프로그램의 수정이나 데이터의 수정 작업 이 끝날 때까지 프로세스를 연기시킴. ▶ 주기적으로 수행되어야 하는 경우, 해당 주기 가 될 때까지 연기. ▶ 부 프로세스가 자식 프로세스를 연기.

(2) 1개의 연기 상태가 추가된 상태 전이 ▶ '연기된 대기 상태'에 있는 프로세스는 (2) 1개의 연기 상태가 추가된 상태 전이 ▶ 연기 상황에 의해, 대기(BLOCK) 상태에 있는 프로세스를, 더 이상 상태 전이가 일어나지 않도록 연기된 대기 상태(suspended block)로 넣어 둠. ▶ '연기된 대기 상태'에 있는 프로세스는 '임의의 재동작(resume) 명령'을 받을 때에만, 원래의 상태인 “대기 상태(BLOCK)”로 복귀.

1개의 연기상태가 추가된 프로세스 상태 전이 (총 6개의 상태) 1개의 연기상태가 추가된 프로세스 상태 전이 (총 6개의 상태) 제출 CPU 할당 해제 NEW (생성) READY (준비) RUN (실행) EXIT (종료) CPU 시간 초과 대기상황 종료시 대기상황 발생시 BLOCK (대기) 재동작 명령시 (RESUME) 연기 명령시 (SUSPEND) 추가된 부분 SUSPENDED BLOCK 연기된 대기상태

(3) 2개의 연기 상태가 추가된 상태 전이 ▶ 대기(BLOCK), 준비(READY), 실행(RUN) 상태에 있는 프로세스는 주기억 장소(main memory)에 적재되어 있으나, “연기된 대기 상태”와 “연기된 준비 상태”에 있는 프로세스는 보조기억 장치에 적재됨 : SWAP OUT ▶ “연기된 대기 상태”와 연기된 준비 상태”에 있는 프로세스가 재동작(RESUME) 명령을 받았을 때에는 다시 주기억 장소로 적재 되는 시간이 필요함 : SWAP IN

(3) 2개의 연기 상태가 추가된 상태 전이(계속) (3) 2개의 연기 상태가 추가된 상태 전이(계속) ▶ 대기(block) 상태 이외에 준비 (ready) 와 실행 (run) 상태에서도 연기 작업이 일어 날 수 있도록 함. ▶ 준비 상태와 실행 상태에서의 연기 명령 시에는 “연기된 준비 상태 (suspended READY)” 로 전이됨.

‘2개의 연기 상태’ 가 추가된 프로세스 상태 전이 (총 7개의 상태) ‘2개의 연기 상태’ 가 추가된 프로세스 상태 전이 (총 7개의 상태) NEW (생성) READY (준비) BLOCK (대기) EXIT (종료) RUN (할당) SUSPENDED 제출 CPU 할당 해제 대기상황 발생시 CPU 시간 초과 연기명령 (SUSPEND) 연기된 대기상태 재동작 명령 (RESUME) 종료시 연기명령(SUSPEND) 추가된 부분 연기된 준비 상태

2-1

2.1.3 프로세스의 표현과 제어 ■ 시스템 내의 모든 프로세스는 OS가 관리함 [ 관리 내용 ] 프로세스의 위치, 프로세스의 [ 관리 내용 ] 프로세스의 위치, 프로세스의 각종 상태 정보 등. - 프로세스는 OS의 전체적인 제어 구조 내에서 관리하여야 할, 하나의 “자원(resource)” 으로 간주함. - 프로세스에 관한 각종 정보는 “PCB” 에 있음.

2-7

 PCB를 위한 공간은 해당 시스템이 최대 ■ 모든 프로세스는 PCB를 갖고 있다. 수용할 수 있는 프로세스의 수에 따라서 동적으로 주기억 공간 내에 할당하게 됨.

2-8

PCB ( Process Control Block)의 정보. 1) 프로세스 식별 정보 1) 프로세스 식별 정보  이 프로세스의 식별자 (식별 번호: identifier)  이 프로세스를 생성시킨 사용자 식별번호.  이 프로세스의 부/자 프로세스의 식별번호. 2) 프로세스 제어 정보  프로세스 상태 정보 및 스케줄링 관련 정보 - 프로세스 상태? : 7가지 중 하나의 상태 - 우선순위의 등급. - 스케줄링 관련 정보 및 특정 사건 정보.

 자료 구조 정보  통신 정보 - 다른 프로세스와의 통신을 위한 정보  권한 정보 - 접근 권한과 명령어 수행 권한 정보 - 프로세스의 연결 구조 - 부 / 자 프로세스의 구조 - 다른 프로세스와의 연결 포인터  통신 정보 - 다른 프로세스와의 통신을 위한 정보  권한 정보 - 접근 권한과 명령어 수행 권한 정보 - DB, 유틸리티의 사용 권한 정보

 주기억 장치 관리 정보 - 보호 관련 정보 - 페이지, 세그먼트 테이블에 관한 정보  자원 소유 및 사용 정보 - 보호 관련 정보 - 페이지, 세그먼트 테이블에 관한 정보  자원 소유 및 사용 정보 - 소유하고 있는 자원에 관한 정보 - 제어중인 자원에 관한 정보 - 각종 자원의 사용 내역에 관한 정보 그림 2.9 참조

2) 프로세스 제어 정보 3) 프로세서(CPU)의 상태 정보  사용 가능한 레지스터에 관한 정보 1) 프로세스 식별정보 2) 프로세스 제어 정보 3) 프로세서(CPU)의 상태 정보  사용 가능한 레지스터에 관한 정보  제어 및 상태 레지스터에 관한 정보 - 프로그램 카운터 - 조건 코드, PSW 등  스택 포인터 등