stallingsos6e-chap02.ppt [호환...

33
2. 운영체제 운영체제 개요 개요 2. . 운영체제 운영체제 개요 개요 2장의 장의 강의 강의 목표 목표 운영체제의 목적과 기능을 이해한다. 운영체제 기술 발전을 이해한다. 일괄처리시, 다중 프로그래밍, 시분할시템의 개념이해한다. 운영체제의 주요 성과에 대한 이해 운영체제의 주요 성과에 대한 이해 프로세스 관리 메모리 관리 메모리 관리 정보 보호 및 보안, 스케줄링 및 자원 관리, 시스템 구조 사례 시스템 사례 시스템 Microsoft Windows / UNIX 계열 / Linux 운영체제 개요 2

Upload: others

Post on 16-Oct-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

22장장.. 운영체제운영체제 개요개요22장장. . 운영체제운영체제 개요개요

22장의장의 강의강의 목표목표

• 운영체제의 목적과 기능을 이해한다.

• 운영체제 기술 발전을 이해한다.

• 일괄처리시스템, 다중 프로그래밍, 시분할시스템의 개념을일괄처리시 템, 다중 래밍, 시분할시 템의 개념을이해한다.

• 운영체제의 주요 성과에 대한 이해운영체제의 주요 성과에 대한 이해

– 프로세스 관리

– 메모리 관리메모리 관리

– 정보 보호 및 보안, 스케줄링 및 자원 관리, 시스템 구조

• 사례 시스템• 사례 시스템

– Microsoft Windows / UNIX 계열 / Linux

운영체제 개요 2

Page 2: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

목목 차차

2.1 운영체제의 목적 및 기능

2.2 운영체제의 발전

2.3 주요 성과주 성과

2.4 최근 운영체제로의 발전

2 5 Mi ft Wi d 개요2.5 Micorsoft Windows 개요

2.6 전통적인 UNIX 시스템

2.7 최근의 UNIX 시스템

2.8 Linux

운영체제 개요 3

운영체제운영체제

• 응용 프로그램의 실행을 제어하는 프로그램

• 응용과 하드웨어 간의 인터페이스

• 컴퓨터 사용자가 컴퓨터 하드웨어를 편리하게 사용할 수 있게 해주는 핵심 시스템 소프트웨어게 해주는 핵심 시스템 소프트웨어

• 사용자 입장

– 사용자 프로그램을 실행시켜 주고,

– 사용자가 컴퓨터를 이용하여 문제 푸는 것을 쉽게 해줌

컴퓨터 시스템 사용을 쉽게 해주려는 역할도 함– 컴퓨터 시스템 사용을 쉽게 해주려는 역할도 함.

Computing EnvironmentComputing Environment

시스템 입장• 시스템 입장

– 컴퓨팅 자원들을 가능한 한 효율적으로 사용하도록 돕는다.

R MR M

운영체제 개요 4

Resource ManagerResource Manager

Page 3: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

2.1 2.1 운영체제의운영체제의 목적목적 및및 기능기능

• 편리성

– 컴퓨터를 사용하기 쉽게

• 효율성

– 컴퓨터 시스템 자원을 효율적인 방법으로 사용할 수 있게

• 발전 능력발 능력

– 효과적인 개발과 검사 그리고 새로운 시스템 기능도입을 다른 서비스를 방해하지 않고 수용해야 함

운영체제 개요 5

컴퓨터컴퓨터 시스템의시스템의 계층계층 구조구조 -- 편리성편리성 관점관점

2.1 운영체제의 목적 및 기능

운영체제 개요 6

Page 4: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

운영체제가운영체제가 제공하는제공하는 서비스서비스 -- 편리성편리성

2.1 운영체제의 목적 및 기능

• 프로그램 개발

– 에디터 및 디버거

• 프로그램 실행

• I/O 디바이스 접근I/O 디바이스 접근

• 파일 접근의 제어

• 시스템 접근

• 에러 검출 및 응답

– 내부 및 외부 하드웨어 에러 : 메모리 에러, 디바이스 결함

– 소프트웨어 에러 : 산술 오버플로우, 금지된 메모리 영역의 접근

– 응용의 요청을 수용하지 않을 수 있음

• AccountingAccounting

– 사용 통계 취합 / 성능 모니터

– 기능 보완의 필요성을 미리 예상하거나 성능향상을 위해 시스템 조율하는데 유용

운영체제 개요 7

– 과금의 목적도 있음

효율성효율성 측면의측면의 운영체제운영체제 -- 자원관리자자원관리자

2.1 운영체제의 목적 및 기능

• 자원 관리의 책임

• 일반적인 컴퓨터 소프트웨어와 동일하게 기능(실행되는 프로그램임)

• 운영체제는 처리기의 제어를 빈번하게 응용에게 양도했다 받아가며 실행됨행됨.

운영체제 개요 8

Page 5: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

커널커널 (kernel)(kernel)2.1 운영체제의 목적 및 기능

• 주 메모리에 상주하는 운영체제 핵심

• 자주 사용되는 기능을 포함

• Nucleus라고도 불림라 불림

운영체제 개요 9

운영체제운영체제 발전의발전의 용이성용이성

2.1 운영체제의 목적 및 기능

• 운영체제가 진화할 수밖에 없는 이유

– 하드웨어 업그레이드와 새로운 형태의 하드웨어

– 새로운 서비스

• 사용자 또는 시스템 관리자의 요구에 따라 새로운 서비스를 제공하기위해 운영체제가 확장되어야 함

결함 수정– 결함 수정

• 어떤 운영체제도 결함을 가지고 있음

운영체제 개요 10

Page 6: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

2.2 2.2 운영체제의운영체제의 발전발전

• 순차 처리

– 운영체제 없음

– 이 시대의 컴퓨터들은 디스플레이 발광체(light) 토글이 시대의 컴퓨터들은 디스플레이 발광체(light), 토글(toggle) 스위치, 입력 장치, 프린터 등으로 구성된 콘솔(console)을 통해 운영( )

– 문제점

• 자동 스케줄링(scheduling) 부재자동 스케줄링(scheduling) 부재

• 프로그램 실행을 위한 준비시간(setup time)이 너무 길다

– 컴파일러와 소스 프로그램의 적재 컴파일된 프로그램컴파일러와 소스 프로그램의 적재 컴파일된 프로그램의 저장 / 적재 / 링킹

운영체제 개요 11

단순단순 일괄일괄 처리처리 시스템시스템

2.2 운영체제의 발전

• 모니터

– 일련의 이벤트를 제어하는 소프트웨어

– batch 작업작

– 작업이 완료되면 제어는 다시 모니터로 넘어가고, 모니터는즉시 다음 작업을 읽음

– 각 작업의 결과는 출력되어 사용자에게 전달

– JCL(Job Control Language)을 활용해 모니터에게 요청할 명JCL(Job Control Language)을 활용해 모니터에게 요청할 명령어를 구성할 수 있다.

운영체제 개요 12

Page 7: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

Job Control Language (JCL)Job Control Language (JCL)단순 일괄처리 시스템2.2 운영체제의 발전

• 특수한 형태의 프로그래밍 언어

• 모니터에 명령어 제공

– 사용할 컴파일러가 무엇인지

– 사용할 데이터가 무엇인지

운영체제 개요 13

근대근대 운영체제로운영체제로 발전을발전을 위한위한 하드웨어하드웨어 기능기능

단순 일괄처리 시스템2.2 운영체제의 발전

• 메모리 보호

– 모니터를 포함하고 있는 메모리 영역이 변경되지 않도록

• 타이머

– 단일 작업이 시스템을 독점하지 못하도록

• 특권 명령어특 명령어

– 특정 기계 수준의 명령어는 모니터에 의해서만 수행되게

• 인터럽트• 인터럽트

– 초기의 컴퓨터 모델에서는 사용하지 않았음

운영체제 개요 14

Page 8: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

메모리메모리 보호보호

단순 일괄처리 시스템2.2 운영체제의 발전

• 사용자 프로그램은 사용자 모드에서 수행

– 특정 명령어는 수행되지 않을 수 있음

• 모니터는 시스템 모드에서 수행

– 커널 모드라고도 함.

– 특권 명령어가 수행

– 보호된 메모리 영역을 접근할 수 있음

운영체제 개요 15

다중프로그래밍다중프로그래밍 일괄처리일괄처리 시스템시스템

2.2 운영체제의 발전

• 등장 배경

• 처리기 이용률(utilization) 측면에서 단순 일괄처리 시스템의 단점

• 입출력과 CPU 계산이 중첩되게 하면 성능 향상이 가능!

운영체제 개요 16

Page 9: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

다중프로그래밍다중프로그래밍 일괄처리일괄처리 시스템시스템((계속계속))2.2 운영체제의 발전

• 단일 프로그래밍의 단점

– 처리기는 진행 전에 I/O 명령어를 대기해야 함

운영체제 개요 17

다중다중 프로그래밍프로그래밍 (multiprogramming)(multiprogramming)다중프로그래밍 일괄처리 시스템2.2 운영체제의 발전

• 다중프로그래밍을 위해 운영체제가 제공해야 할 기능들

– 입출력 루틴

– 여러 작업에 메모리를 나누어 할당할 수 있는 메모리메모리 관리관리 기능

–– CPU schedulingCPU scheduling :다음 번 작업으로 어떤 것을 고를 것인가?

– 장치 사용 제어(할당, 반환, …)

• 다중프로그래밍의 목표

–– CPU CPU 사용율을사용율을 높임높임

• 단점

– 운영체제가 정한 일련의 정책에 사용자들이 개입할 방법이 거의운영체제가 정한 일련의 정책에 사용자들이 개입할 방법이 거의없음

운영체제 개요 18

Page 10: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

다중다중 프로그래밍프로그래밍 ((계속계속))다중프로그래밍 일괄처리 시스템2.2 운영체제의 발전

• 한 작업이 입출력을 대기해야 할 때, 처리기는 다른 작업으로 제어를 넘김로 제어를 넘김

운영체제 개요 19

프로그램프로그램 수행수행 속성의속성의 예예

다중프로그래밍 일괄처리 시스템2.2 운영체제의 발전

운영체제 개요 20

Page 11: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

프로그램프로그램 수행수행 속성의속성의 예예 ((계속계속))다중프로그래밍 일괄처리 시스템2.2 운영체제의 발전

• 이용률 히스토그램

운영체제 개요 21

시분할시분할 (time sharing) (time sharing) 시스템시스템

2.2 운영체제의 발전

• 대화형 작업을 처리하기 위해 다중 프로그래밍 기법 사용

• 다수의 사용자가 처리기 시간을 공유

• 다수의 사용자는 터미널을 통해 동시에 시스템에 접속할 수다수의 사용자는 터미널을 통해 동시에 시 템에 접속할 수있음

rmemory processorHDDI/O

devices

메인프레임컴퓨터

operator

terminal server

terminals

22

Users

Page 12: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

시분할시분할 (time sharing) (time sharing) 시스템시스템 ((계속계속))2.2 운영체제의 발전

• 일괄처리 다중프로그래밍과 시분할 시스템의 비교

운영체제 개요 23

초기초기 시분할시분할 시스템의시스템의 예예

시분할 시스템2.2 운영체제의 발전

• Compatible Time-Sharing System (CTSS)p g y ( )

• MIT에서 개발한 초기의 시분할 시스템

운영체제 개요 24

Page 13: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

2.3 2.3 주요주요 성과성과

• 운영체제 발전 과정에서 이룬 5가지 주요 진전

– 프로세스

– 메모리 관리메모리 관리

– 정보 보호 및 보안

케 링 및 자원 관리– 스케줄링 및 자원 관리

– 시스템 구조

운영체제 개요 25

프로세스프로세스(process)(process)2.3 주요 성과

• 실행 중인 프로그램

• 컴퓨터 상에서 수행 중인 프로그램의 인스턴스(instance)

• 처리기에 할당되어 수행될 수 있는 개체(entity)처리기에 할당되어 수행될 수 있는 개체( y)

• 다음과 같은 기준에 의해 특징지어지는 작업 단위

하나의 순차적인 실행 흐름– 하나의 순차적인 실행 흐름

– 현재 상태

연관된 시스템 지원의 집합– 연관된 시스템 지원의 집합

운영체제 개요 26

Page 14: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

시스템시스템 소프트웨어소프트웨어 설계의설계의 어려움어려움

프로세스2.3 주요 성과

• 동기화 오류

– I/O 장치를 대기하는 프로세스는 신호(signal)처리를 확실하게 해야 함

상호배제 실패• 상호배제 실패

• 비결정적인(nondeterminate) 프로그램 연산

– 프로그램의 결과는 그 프로그램의 입력에 의해서 결정되어야 하며, 다른 프로그램의 입력에 의해서 결정되어서는 안됨

• 교착상태(deadlocks)

운영체제 개요 27

프로세스의프로세스의 세세 가지가지 구성요소구성요소

프로세스2.3 주요 성과

• 수행 가능한(executable) 프로그램

• 프로그램 수행에 필요한 관련 데이터

– 변수, 작업 공간, 버퍼 등

• 프로그램 수행 문맥(execution context, process state)

– 운영체제가 프로세스를 관리하는데 필요한 모든 정보운영체제가 프로세스를 관리하는데 필요한 모든 정보

운영체제 개요 28

Page 15: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

프로세스프로세스 구현의구현의 예예

프로세스2.3 주요 성과

운영체제 개요 29

메모리메모리 관리관리

2.3 주요 성과

• 프로세스 분리(isolation)

• 자동 할당 및 관리

– 메모리 요청 시 사용자 개입 없이 할당해주어야 함.

• 모듈식 프로그래밍 지원

• 보호 및 접근 제어• 보호 및 접근 제어

• 영구적 저장 지원

운영체제 개요 30

Page 16: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

메모리메모리 관리를관리를 위한위한 파일파일 시스템시스템

메모리 관리2.3 주요 성과

• long-term store 구현의 한 방법

• 저장되는 정보는 파일이라 불리는 명명된 객체(named object)임

• 프로그래머는 논리적인 관점을 가지고 메모리 접근

운영체제 개요 31

페이징페이징 (paging)(paging)

메모리 관리2.3 주요 성과

• 모든 메모리는 페이지라 불리는 고정된 크기의 블록으로 구성됨성됨

• 가상 주소는 페이지 번호와 페이지 내의 오프셋으로 되어있음있음

• 각 페이지는 주기억장치 또는 보조기억장치의 어디에나 위치할 수 있다치할 수 있다.

• 실 주소(real address) 또는 물리 주소(physical address)는주기억장치의 주소임에 주의할 것!

운영체제 개요 32

Page 17: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

가상가상 메모리의메모리의 개념개념

메모리 관리2.3 주요 성과

운영체제 개요 33

가상가상 주소를주소를 실주소로실주소로 바꾸는바꾸는 과정과정

메모리 관리2.3 주요 성과

운영체제 개요 34

Page 18: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

정보정보 보호와보호와 보안보안

2.3 주요 성과

• 가용성 (availability)

– 시스템이 중지되지 않게 하는 것과 관련됨

• 기밀성 (confidentiality)

– 접근 권한이 부여되지 않은 데이터를 사용자가 읽지 못하도록 보장하는 것

• 데이터 무결성 (data integrity)

– 데이터가 불법적으로 수정되지 못하게 보호

• 인증 (authenticity)

– 사용자 신원이나 메시지와 데이터의 유효성에 대한 적절한 검증과관련됨

운영체제 개요 35

스케쥴링과스케쥴링과 자원자원 관리관리

2.3 주요 성과

• 공정성

– 자원으로의 동일하고 공정한 접근

• 차등 서비스차등 서비

– 다른 작업 클래스들을 구별

• 효율성• 효율성

– 작업처리량을 극대화

반응시간을 최소화– 반응시간을 최소화

– 가능한 많은 수의 사용자를 동시에 수용할 수 있도록 함

운영체제 개요 36

Page 19: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

프로세스프로세스 스케줄링스케줄링 관련관련 운영체제운영체제 주요주요 요소요소스케줄링과 자원 관리2.3 주요 성과

운영체제 개요 37

시스템시스템 구조구조

2.3 주요 성과

• 일련의 연속된 레벨로 구성된 계층구조로 볼 수 있음

• 각 레벨은 운영체제가 처리해야 할 기능의 일부를 수행

• 각 레벨은 자신의 바로 하위 레벨에 있는 보다 기본적인각 레벨은 자신의 바 하위 레벨에 있는 다 기본적인(primitive) 함수를 호출할 수 있음

• 하나의 문제를 보다 관리하기 쉬운 여러 개의 작은 문제로하나의 문제를 보다 관리하기 쉬운 여러 개의 작은 문제로분할해 줌

운영체제 개요 38

Page 20: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

시스템시스템 레벨레벨

시스템 구조2.3 주요 성과

• 레벨 1

– 전자 회로

– 레지스터, 메모리 셀 및 논리 게이트가 주요 객체

– 레지스터 삭제 또는 메모리 읽기 등이 대표적인 연산

• 레벨 2

– 처리기의 명령어 집합

– add, subtract, load 및 store 등이 대표적인 연산

• 레벨 3

– 호출/복귀 연산을 포함한 프로시저 또는 서브루틴 개념 추가호출/복귀 연산을 포함한 프로시저 또는 서브루틴 개념 추가

• 레벨 4

인터럽트– 인터럽트

운영체제 개요 39

다중다중 프로그래밍과프로그래밍과 관련된관련된 시스템시스템 레벨레벨

스케줄링과 자원 관리2.3 주요 성과

• 레벨 5

– 실행 중인 프로그램으로서의 프로세스

– 프로세스 보류 및 재개

• 레벨 6

– 2차 저장 장치

– 데이터 블록 전송

• 레벨 7레

– 프로세스에게 논리적인 주소 공간 제공

– 가상 주소 공간을 블록 단위로 구성가상 주소 공간을 블록 단위로 구성

운영체제 개요 40

Page 21: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

외부외부 객체객체 처리를처리를 위한위한 상위상위 시스템시스템 레벨레벨

스케줄링과 자원 관리2.3 주요 성과

• 레벨 8

– 프로세스 간 정보와 메시지 통신

• 레벨 9

– 파일이라고 불리는 장기 저장 장소 지원

• 레벨 10레벨

– 표준 인터페이스를 사용한 외부 장치 접근 제공

• 레벨 11• 레벨 11

– 외부 식별자와 내부 식별자 간의 연계성 유지 책임

레벨 12• 레벨 12

– 프로세스 지원을 위한 다양한 기능 제공

레벨• 레벨 13

– 사용자에게 운영체제를 접근하기 위한 인터페이스 제공운영체제 개요 41

2.4 2.4 최근최근 운영체제로의운영체제로의 발전발전

• 마이크로 커널 구조

– 몇몇 소수의 핵심 기능만을 커널에 포함

• 주소 공간

• 프로세스 간 통신(IPC : inter-process communication)

• 기본적인 스케줄링

다중쓰레딩( i i )• 다중쓰레딩(multi-threading)

– 프로세스를 동시에 수행될 수 있는 쓰레드들로 분할하는 기법

• 쓰레드

– 작업의 디스패치 단위로써 실행 흐름을 의미

– 순차적으로 수행되고 인터럽트 당할 수 있음순차적으로 수행되고 인터럽트 당할 수 있음

• 프로세스는 하나 이상의 쓰레드와 관련 자원들의 모음

운영체제 개요 42

Page 22: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

최근최근 운영체제운영체제: Parallel system: Parallel system

2.4 최근 운영체제로의 발전

• 대칭형 다중처리(SMP: Symmetric multiprocessing)

– 다수의 처리기들로 구성

– 이들 처리기는 주기억장치와 입출력 장치를 공유

– 모든 처리기는 동일한 기능을 수행할 수 있음

• 비대칭형 다중처리(Asymmetric multiprocessing)

– 각 처리기 마다 각자의 역할이 있음

• 마스터 처리기는 슬레이브 처리기들에게 작업과 메모리를 할당한다.

– 초대형 시스템에서 자주 사용하는 병렬 처리 방식임

운영체제 개요 43

다중프로그래밍과다중프로그래밍과 다중처리다중처리

2.4 최근 운영체제로의 발전

운영체제 개요 44

Page 23: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

기타기타 운영체제운영체제 관련관련 이슈들이슈들

2.4 최근 운영체제로의 발전

• 분산 운영체제

– 단일 주기억장치 공간과 단일 보조기억장치 공간을 사용하는 것처럼 느끼게 해줌

• 객체 지향 설계

– 작은 커널을 모듈 단위로 확장해 가는 기능 제공

– 시스템의 무결성을 해치지 않으면서 프로그래머로 하여금 자신이원하는 대로 운영체제를 구성할 수 있게 해 줌원하는 대로 운영체제를 구성할 수 있게 해 줌

운영체제 개요 45

실시간실시간 시스템시스템 (real(real--time system)time system)

2.4 최근 운영체제로의 발전

• 특수 목적의 전용 기기를 위한 운영체제로 사용됨

– controlling scientific experiments / medical imaging systems

– industrial control systems / display systems.

프로세스 실행에 시간 제약 조건이 있음• 프로세스 실행에 시간 제약 조건이 있음

• 시간 제약조건의 심각성에 따른 분류

– 경성(hard) 실시간 시스템

– 연성(soft) 실시간 시스템

운영체제 개요 46

Page 24: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

임베디드임베디드 시스템시스템(embedded system)(embedded system)

2.4 최근 운영체제로의 발전

• 제품(또는 시스템) 내에 내장되어 있는 컴퓨터 시스템

– “컴퓨터의 하드웨어와 소프트웨어가 조합되어 특수한 목적을 수행하는 시스템”

수행 환경에 따라 환경적 제약/시간적 제약을 만족시키며 실행되– 수행 환경에 따라 환경적 제약/시간적 제약을 만족시키며 실행되어야 한다.

• 예• 예

– PDA / Cellular telephones / 셋톱박스 / Home Appliances

연구 이슈들• 연구 이슈들

– 메모리 양의 제약을 어떻게 극복할 것인가?

처리기가 상대적으 느림– 처리기가 상대적으로 느림

– 화면이 작음

전력 소모량과 배터리 수명

운영체제 개요 47

– 전력 소모량과 배터리 수명

2.5 Microsoft Windows2.5 Microsoft Windows 개요개요

• 모듈화는 상당한 융통성을 제공

• 다양한 형태의 하드웨어 플랫폼에서 수행 가능

• 다른 다양한 운영체제용으로 개발된 응용도 지원다른 다양한 운영체제용으로 개발된 응용도 지원

운영체제 개요 48

Page 25: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

WindowsWindows의의 구조구조

운영체제 개요 49

커널커널 모드모드 요소요소

• 수행부(Executive)– 기본적인 운영체제 서비스를 포함

• 메모리 관리

• 프로세스와 쓰레드 관리

• 보안

입출력• 입출력

• 프로세스간 통신(IPC)

• 커널• 커널– 가장 많이 사용되는 구성요소를 포함

하드웨어 추상화 계층(HAL)• 하드웨어 추상화 계층(HAL)– 플랫폼들의 하드웨어적 차이로부터 운영체제를 독립시킴

운영체제 개요 50

Page 26: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

커널커널 모드모드 요소요소

• 장치 드라이버– 사용자의 입출력 기능 호출을 특정 하드웨어 장치에 대한 입출

력 요청으로 바꾸어 줌

• 윈도우 다루기와 그래픽 시스템– 사용자 그래픽 인터페이스(GUI) 기능 구현

운영체제 개요 51

Windows Windows 수행부수행부

• 입출력 관리자• 캐시 관리자• 캐시 관리자• 객체 관리자• 플러그앤플레이 관리자• 전원 관리자• 보안 참조 모니터• 가상메모리 관리자• 프로세스/쓰레드 관리자• 구성 관리자• 구성 관리자• 지역 프로시져 호출(LPC) 도구

운영체제 개요 52

Page 27: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

사용자사용자 모드모드 프로세스프로세스

• 특별 시스템 지원 프로세스– 예: 세션 관리자, 인증 서브시스템, 서비스 관리자, 로그온 프로세

서비스 세스• 서비스 프로세스

• 환경 서브시스템

• 사용자 응용

운영체제 개요 53

클라이언트클라이언트//서버서버 모델모델

• 실행부의 단순화– 다양한 API가 구축될 수 있음

• 신뢰성을 향상– 각 서비스는 커널 밖에서 수행되며, 다른 서버로부터 보호 됨

• RPC를 통해 응용들이 통신할 수 있도록 일정한 수단을를 통해 응용들이 통신할 수 있도록 일정한 수단을제공

• 분산 컴퓨팅 환경의 기반 제공분산 컴퓨팅 환경의 기반 제공

운영체제 개요 54

Page 28: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

쓰레드와쓰레드와 SMPSMP

• 운영체제 루틴은 어떤 처리기에서도 실행 가능

• 하나의 프로세스 내의 다중 실행 쓰레드는 동시에 다른처리기 상에 실행 가능

• 서버 프로세스는 다중 쓰레드를 사용할 수 있음

• 프로세스 간의 데이터와 자원 공유프로세스 간의 데이터와 자원 공유

운영체제 개요 55

Windows Windows 객체객체

• 캡슐화– 객체는 하나 이상의 데이터 아이템과 하나 이상의 프로시저를

포함

객체 클래스와 인스턴스• 객체 클래스와 인스턴스– 객체의 특정 인스턴스를 생성

• 상속– 실행부의 확장을 지원

• 다형화

운영체제 개요 56

Page 29: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

2.6 2.6 전통적인전통적인 UNIX UNIX 시스템시스템

• 운영체제 소프트웨어의 의해 하드웨어는 감추어짐

• 다양한 사용자 서비스와 인터페이스 제공– Shell

– C 컴파일러

운영체제 개요 57

일반적인일반적인 UNIX UNIX 구조구조

운영체제 개요 58

Page 30: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

전통적인전통적인 UNIX UNIX 커널커널

운영체제 개요 59

2.7 2.7 최근의최근의 UNIX UNIX 시스템시스템

운영체제 개요 60

Page 31: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

현대의현대의 UNIX UNIX 시스템시스템

• System V Release 4 (SVR4)

• BSD

• Solaris 10

운영체제 개요 61

2.8 Linux2.8 Linux

• 마이크로커널 방식을 사용하지 않음

• 동적 적재 가능한 모듈의 집합– 동적 링킹

– 스택 가능한 모듈

운영체제 개요 62

Page 32: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

Linux Linux 커널커널 모듈모듈

운영체제 개요 63

Linux Linux 커널커널 구성요소구성요소

운영체제 개요 64

Page 33: StallingsOS6e-Chap02.ppt [호환 모드]mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/StallingsOS6e-Chap02.pdf · – 컴퓨터시스템자원을효율적인방법으로사용할수있게

요요 약약

• 운영체제 목적– 편리성, 효율성, 발전가능성

– 운영체제 서비스

• 운영체제의 발전– 순차처리, 일괄처리시스템, 다중 프로그래밍, 시분할 시스템

• 주요 성과– 프로세스, 메모리 관리, 정보 보호 및 보안, 스케줄링 및 자원 관프로세스, 메모리 관리, 정보 보호 및 보안, 스케줄링 및 자원 관

리, 시스템 구조

• 최근 운영체제 기술 및 사례 시스템– 마이크로 커널 구조, 다중 쓰레딩, SMP, 분산 운영체제, 객체 지

향 설계

운영체제 개요 65

– Microsoft Windows, UNIX 시스템, Linux 시스템