lecture #2

38
신신신신신 신신신신신신 - 신신신신 1 Lecture Lecture #2 #2 Operating Systems Operating Systems Overview Overview

Upload: lester-shaw

Post on 03-Jan-2016

33 views

Category:

Documents


4 download

DESCRIPTION

Lecture #2. Operating Systems Overview. 강의 내용. 운영체제의 개요 운영체제의 발전 역사 1) 직렬 처리 시스템 2) 단순 일괄처리 시스템 3) 다중 프로그램 일괄처리 시스템 4) 시분할 시스템 현대 운영체제의 특징. Operating System. 응용 프로그램의 실행을 제어하는 프로그램 OS 는 사용자의 요구에 맞추어 응용 프로그램의 실행과 종료를 제어한다 OS 는 다수의 응용 프로그램 사이에 효율적인 자원 공유를 제어한다 사용자와 하드웨어 사이의 인터페이스 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lecture #2

신라대학교 컴퓨터공학과 - 운영체제

1

Lecture #2Lecture #2

Operating Systems OverviewOperating Systems Overview

Page 2: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

2

강의 내용강의 내용

운영체제의 개요 운영체제의 발전 역사

1) 직렬 처리 시스템

2) 단순 일괄처리 시스템

3) 다중 프로그램 일괄처리 시스템

4) 시분할 시스템

현대 운영체제의 특징

Page 3: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

3

Operating SystemOperating System

응용 프로그램의 실행을 제어하는 프로그램 OS 는 사용자의 요구에 맞추어 응용 프로그램의 실행과

종료를 제어한다 OS 는 다수의 응용 프로그램 사이에 효율적인 자원

공유를 제어한다

사용자와 하드웨어 사이의 인터페이스 응용 프로그램에 제공하는 기능에 대해 하드웨어의

상세한 제어 기능을 감추다 (Masking) 예 : 하드디스크 입출력 , 프린터 출력 등 OS 가 하드웨어의 세부적인 제어를 수행하여야 한다

Page 4: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

4

EndUser

Programmer

Operating-System

Designer

Computer Hardware

Operating-System

Utilities

ApplicationPrograms

컴퓨터 시스템의 계층적 구조

Page 5: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

5

OS Services(1)OS Services(1)

프로그램 개발 환경 제공 editors, compilers, linkers, and debuggers

프로그램 실행 loading in memory, I/O and file initialization

I/O 와 파일에 대한 접근 외부 장치에 대한 입출력 및 파일 입출력

시스템 접근 시스템 자원 및 데이터에 대한 접근 보호 시스템 자원 접근 충돌 해결

Page 6: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

6

OS Services(2)OS Services(2)

에러 검출 내부 및 외부 하드웨어 에러

memory error device failure

소프트웨어 에러 arithmetic overflow access forbidden

memory locations 운영체제 에러

에러 해결 간단한 에러 리포팅 오퍼레이션의 재시도 응용 프로그램 중단

Page 7: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

7

OS Services(3)OS Services(3)

계정 관리 시스템 자원 사용에 대한 통계 수집 시스템 성능 모니터링 (eg: response time) 시스템 튜닝 자료 수집 과금 자료 수집 (on multiuser systems)

Page 8: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

8

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

OS 는 하드웨어의 기능향상 및 새로운 종류의 하드웨어을 적절히 이용하여야 한다 Character vs graphic terminals paging hardware 등

OS 는 새로운 서비스를 제공하여야 한다 예 : internet support 등

OS 의 설계 및 구현 기술에 따른 변화의 필요성 modular construction with clean interfaces object oriented methodology

Page 9: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

9

운영체제의 발전 역사운영체제의 발전 역사 직렬 처리 시스템 (Serial Processing) 단순 일괄처리 시스템 (Simple Batch Processing) 다중 프로그램 일괄 처리 시스템

(Multiprogrammed Batch Processing) 시분할 시스템 (Time-Sharing Systems) Modern Operating Systems:

병렬 시스템 (Parallel Systems) : SMP 분산 시스템 (Distributed Systems) 실시간 시스템 (Real-Time Systems)

Page 10: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

10

직렬 처리 시스템직렬 처리 시스템 ((Serial Processing)Serial Processing)

가장 초창기 컴퓨터 시스템 환경 (late 1940s~mid 1950s) 프로그래머가 직접 컴퓨터 하드웨어를 제어 운영체제가 없다 주요 문제점 :

Scheduling: 비효율적인 job scheduling Setup time: 하나의 job 을 수행하기 위한 setup time 이

상당히 길다

Page 11: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

11

단순 일괄 처리 시스템단순 일괄 처리 시스템 최초의 운영 체제 (mid-1950s) 동작 방식 :

1. 사용자는 카드 등으로 작성된 작업 (job) 을 컴퓨터 운영자에 제출한다

2. 컴퓨터 운영자는 제출된 사용자 작업을 묶어 일괄작업(batch) 을 컴퓨터에 입력한다

3. ‘ 모니터 (Monitor)’ 프로그램이 일괄작업의 각 작업을 순서대로 실행한다

상주 모니터 (Resident monitor) 는 항상 실행되기 위해 주기억장치에 상주한다

모니터 유틸리티는 필요할 때에 주기억장치에 올라온다 (loading)

Page 12: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

12

Start

Load New Job

Execute Job

Next Job?

Wait for Jobs

Yes No

Simple Batch System Operation

Page 13: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

13

모니터모니터 ((Monitor)Monitor) 모니터는 입력장치 ( 카드판독기 ) 에서

각 작업 ( 사용자 프로그램 ) 을 하나씩 읽어 들여 주기억장치에 저장한다(loading)

모니터 명령어에 의해 사용자 프로그램 실행이 시작된다

사용자 프로그램은 다음 상황 까지 실행된다 : end-of-program 명령어 에러 발생

하나의 사용자 프로그램이 종료되면 다시 모니터가 실행된다 .

Page 14: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

14

Job Control Language (JCL)Job Control Language (JCL)

모니터에게 작업 실행과 관련된 명령을 주기 위한 언어 what compiler to use what data to use

작업 포맷의 예 : ----------------->> ‘$FTN’ 는 컴파일러을 불러 들여

프로그램 번역을 수행 하도록 한다 ‘$LOAD’ 는 번역된 객체 코드를

주기억장치에 올린다 (loading) ‘$RUN’ 는 사용자 프로그램을

실행한다

$JOB$FTN...FORTRAN program...$LOAD$RUN...Data...$END

Page 15: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

15

일괄 처리 운영체제일괄 처리 운영체제

CPU 및 다른 컴퓨터 자원의 유휴시간이 크다 사용자 프로그램이 입출력을 수행하는 경우에 CPU 는

입출력 작업이 종료될 때까지 idle 상태에 있는다

사용자 프로그램과 모니터 프로그램을 교대로 실행한다

주기억장치 상의 여러 프로그램을 효율적인 교대 수행하기 위해서는 하드웨어 지원을 필요로 한다

Page 16: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

16

하드웨어 기능 향상하드웨어 기능 향상 (1)(1) 메모리 보호

사용자 프로그램이 시스템 영역의 메모리에 접근할 수 없도록 메모리 보호 기능 지원

타이머 하나의 작업이 시스템을 독점하는 것을 막는다 주어진 시간이 지나면 인터럽트를 발생한다

Page 17: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

17

하드웨어 기능 향상하드웨어 기능 향상 (2)(2) 특권 명령어

두개의 CPU 명령어 모드 지원 사용자 모드 모니터 모드 ( 또는 슈퍼바이저 (Supervisor) 모드 )

모니터에 의해서만 수행되는 명령어 사용자 프로그램이 실행하면 인터럽트 발생

인터럽트 사용자 프로그램과 모니터 사이의 제어권 전환을

융통성있게 할 수 있도록 지원

Page 18: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

18

다중 프로그램 일괄처리 시스템다중 프로그램 일괄처리 시스템 (1)(1)

I/O 동작의 수행속도는 연산 명령어에 비하여 상당히 느리다

I/O 명령어를 가진 프로그램은 대부분의 시간을 입출력을 기다리는데 사용한다

따라서 주기억장치에 하나의 프로그램만 있는 경우(uniprogramming) 에는 CPU 의 효율성이 떨어진다

Page 19: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

19

다중 프로그램 일괄처리 시스템다중 프로그램 일괄처리 시스템 (2)(2)

만약 주기억장치에 여러 개의 프로그램이 있는 경우 , 하나의 프로그램이 입출력 작업을 기다리는 동안 CPU 는 다른 프로그램을 실행할 수 있다 .

multitasking (multiprogramming)

주기억장치

Monitor

Program A

Program B

Program C

Page 20: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

20

다중 프로그램 일괄처리 시스템다중 프로그램 일괄처리 시스템 (3)(3)

Page 21: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

21

다중 프로그래밍 요구 사항다중 프로그래밍 요구 사항 Hardware support:

I/O interrupts and (possibly) DMA Memory management Memory protection (data and programs)

Software support from the OS: Scheduling (which program is to be run next) To manage resource contention

Page 22: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

22

시분할 시스템시분할 시스템 ((Time Sharing Systems)Time Sharing Systems)(1)(1)

다중 프로그램 일괄처리 시스템은 사용자의 대화식 작업을 지원하지 않는다 긴 작업 반환 시간 (Job Turnaround Time)

사용자의 반응 시간이 느리기 때문에 일반적으로 분당 2 초 정도만이 실제 처리시간으로 이용한다

최적의 경우에 분당 30 명의 사용자가 시스템을 공유할 수 있다

Page 23: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

23

시분할 시스템시분할 시스템 ((Time Sharing Systems)Time Sharing Systems)(2)(2)

시분할 시스템은 다수의 대화식 작업을 지원하기 위하여 다중 프로그래밍 방식을 확장한 시스템이다

다수의 사용자들이 프로세서 시간을 공유하도록 한다 Time Slice : 하나의 작업이 프로세서를 점유하는 시간 짧은 반응 시간 (Respone Time)

다수의 사용자가 터미널에서 동시에 시스템을 사용할 수 있다 ( 대화식 작업 수행 )

파일 시스템 등이 보호되어야 한다

Page 24: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

24

시분할 시스템시분할 시스템 ((Time Sharing Systems)Time Sharing Systems)(3)(3)

주기억장치

Program A

(30 msec)

Program B

(20 msec)

Program C

(10 msec)

If Time Slice = 10 msec,

Pgm A

Pgm B

Pgm C

10 ms

20ms

30 ms

40 ms

50 ms

60ms

RUN

RUN

RUN

RUN

RUN

RUN

Page 25: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

25

Modern Operating SystemsModern Operating Systems 의 특징의 특징 ((1)1)

최근에 운영체제에 새로운 기능요소가 지원 되고 있다

새로운 하드웨어의 발전 multiprocessor machines high-speed networks faster processors and larger memory

새로운 소프트웨어 필요성 multimedia applications Internet and Web access Client/Server applications

Page 26: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

26

Modern Operating SystemsModern Operating Systems 의 특징의 특징 ((2)2)

Microkernel Architecture

Multithreading

Symmetric Multiprocessing

Distributed Systems

Object-Oriented Design

Page 27: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

27

Microkernel architectureMicrokernel architecture

커널에서 가장 필수적인 기능만을 지원 primitive memory management (address space) Interprocess communication (IPC) basic scheduling

다른 OS 서비스는 사용자 모드 프로그램 (servers) 으로 제공 device drivers, file system, virtual memory…

More flexibility, extensibility, portability…

최근 운영체제는 microkernel 구조를 기반으로 하고 있다 ( 예 : Window-NT 등 )

Page 28: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

28

MultithreadingMultithreading

하나의 프로세스는 동시에 수행 가능한 thread 들의 집합이다

직렬적으로 수행할 필요가 없는 task 로 이루어지는 응용 프로그램에 가장 유용하다 서버 프로그램 : 웹서버 프로그램 등

하나의 프로세스를 구성하는 thread 는 동일한 데이터와 자원을 공유한다

Page 29: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

29

Symmetric Multiprocessing (SMP)Symmetric Multiprocessing (SMP)

다수의 프로세서를 가진 컴퓨터 각 프로세서는 동일한 기능을 가지며 주기억장치와

I/O 장치를 공유한다 (symmetric) 운영체제는 프로세스 / 쓰레드를 프로세서간에

스케쥴링한다 (real parallelism) Incremental growth

just add another CPU!

Robustness a single CPU failure does not halt the system, only the

performance is reduced

Page 30: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

30

Example of parallel execution on SMP Example of parallel execution on SMP

Page 31: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

31

Distributed SystemsDistributed Systems

고유의 프로세서와 로컬 메모리를 가진 시스템이 다수 모여 구성된 컴퓨터 시스템 Loosely-coupled multiprocessor systems Clustered Systems

분산 운영체제의 특징 : 자원 공유 : 분산파일시스템 등 연산속도 향상 : 부하분산 (load balancing) 등 신뢰성 (reliability): HA(High Availability) 등

Page 32: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

32

Object-Oriented DesignObject-Oriented Design

가장 최근에 이루어진 운영체제 기술 혁신 객체 지향 설계 원리는 핵심 기능을 가진 작은 커널을

모듈러하게 확장할 수 있도록 지원 프로그래머가 시스템의 무결성을 헤치지 않으면서

자신이 원하는 대로 운영체제를 구성할 수 있다 분산 도구 및 완전환 형태의 분산운영체제의 개발을

용이하게 한다

Page 33: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

33

운영체제 구조운영체제 구조 (1)(1)

시스템 호출 (System Calls) 사용자 프로그램과 운영체제 간의 인터페이스 표준 라이브러리 함수를 통한 호출 / 어셈블리어 수준에서의

직접 호출 시스템 호출 사용 예 : 파일 복사 프로그램

입력 파일 이름 및 출력 파일 이름에 대한 입출력 입력 파일 개방 / 출력 파일 생성 파일 읽기 / 파일 쓰기 파일 닫기 메시지 출력 프로그램 종료

Page 34: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

34

운영체제

시스템 호출 사용자 프로그램

프로그래머 관점

Page 35: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

35

운영체제 구조운영체제 구조 (2)(2)

시스템 호출 형태 프로세스 제어 (Process Control)

프로세스 생성 및 종료 프로세스 적재 및 실행 프로세스 속성 설정 및 획득 등

파일 조작 (File Management) 파일 생성 및 삭제 파일 개방 및 닫기 파일 쓰기 및 읽기 파일 속성 설정 및 획득

Page 36: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

36

운영체제 구조운영체제 구조 (3)(3)

시스템 호출 형태 ( 계속 )

장치 조작 (Device Management) 장치 요구 및 해제 판독 , 기록 , 재배치 장치 속성 획득 및 설정

정보 유지 보수 (Information Maintenance) 시간 , 일자 정보 설정 시스템 자료 설정 등

통신 (Communication) 통신 연결 생성 및 제거 자료 송수신 등

Page 37: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

37

운영체제 구조운영체제 구조 (4)(4)

시스템 프로그램 사용자 관점의 운영체제 프로그램 개발과 실행 환경 제공 시스템 관리 기능 제공 파일 조작 기능 제공 시스템 호출에 대한 사용자 인터페이스 제공 예 : 컴파일러 , 윈도우 탐색기 , 제어판 , 프린터 등

Page 38: Lecture #2

- 신라대학교 컴퓨터공학과 운영체제

38

운영체제 구조운영체제 구조 (5)(5) 계층적 운영체제 구조

시스템 디자인 관점에서의 운영체제 구조 pp. 108, 그림 2.15

모듈화 (Modularity) Windows NT 4.0 구조

pp. 97, 그림 2.13 UNIX 시스템 구조

pp. 109, 그림 2.16