28
2000 운운운운 운운운운운 운운운운운운 운운운 1.1 운운운운 (Operating System) Operating Systems are an ( ??? ) part of any computer system !!! 운운운운운 운운운운운운 운 운 운 mailto:[email protected] http://marvel.incheon.ac.kr/~mysung

운영체제 ( Operating System)

Embed Size (px)

DESCRIPTION

운영체제 ( Operating System). Operating Systems are an ( ??? ) part of any computer system !!! 인천대학교 컴퓨터공학과 성 미 영 mailto:[email protected] http://marvel.incheon.ac.kr/~mysung. 교재 및 참고서적. 교재: Avi Silberschatz, Peter Galvin, Greg Gagne Applied Operating System Concepts - PowerPoint PPT Presentation

Citation preview

Page 1: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.1

운영체제 (Operating System)

Operating Systems are an

( ??? )

part of any computer system !!!

인천대학교 컴퓨터공학과

성 미 영

mailto:[email protected]

http://marvel.incheon.ac.kr/~mysung

Page 2: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.2

교재 및 참고서적

• 교재 : Avi Silberschatz, Peter Galvin, Greg Gagne

Applied Operating System Concepts

Wiley, 2000.

• 참고서적– 김영찬 역 , Silberschatz, Galvin 공저 , 한국어판 , Operating System Concepts,

Fifth Edition, 홍릉과학출판사 , 1998.– Siberschatz, Galvin, Operation System Concepts, Fifth Edition, Addison-Wesley,

1998.

– Alessandro Rubini, Linux Device Drivers, O'Reilly, 1998.

– M. Beck, H. Bohme, M. Dziadzka, U. Kunitz, R. Magnus, D. Verworner, Linux Kernel Internals, Second Edition, Addison-Wesley 1999.

– Richard Stones, Neil Mattew, Beginning Linux Programming, Wrox Press Ltd. 1999.

– 한 동 훈 , 이 만 용 역 (Neil Mattew, Richard Stones 원 저 ), 초 보 자 용 리 눅 스 프로그래밍 (Beginning Linux Programming), 대림 , 1998.

– Matt Welsh, Lar Kaufman, Running Linux, 2nd Edition, O'Reilly, 1996.

– Mark F. Komarinski, Cary Collett, Linux Administration Handbook, Prentice Hall, 1998.

– Fred Butzen, Christopher Hilton, Linux Network, M&T Books, 1998.

– Remy Card, Eric Dumas, Frank Mevel, the Linux Kernel book, Wiley, 1998.

Page 3: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.3

수업 개요

•교과목 개요 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 사용자가

보다 편리하게 컴퓨터를 이용할 수 있도록 도와주는 프로그램이다 . 본 교과목에서는 운영체제의 기본 개념에 대하여 전반적으로 이해하며 실제 시스템을 분석해 봄으로써 새로운 운영체제를 설계하는 기초 능력을 배양한다 .

•수업 목표– 프로세스 및 병행 프로세스 관리 , 기억장치 관리 , 보호와 보안

등의 운영체제 기본 개념을 이해한다 .– 분산 시스템을 위한 지원해야 할 프로세스간의 동기 및 통신

메커니즘에 대해 이해한다 .– Linux 등의 실제 시스템을 분석하여 운영체제 설계에 응용할 수

있게 한다 .

•수업방식 : 강의 80%, 실습 20%, 과제가 매우 많음

•평가방법 : 중간 30%, 기말 30%, 과제 20%, 출석 및 수업기여도 20%, Bonus: http://www.hackerslab.com

Page 4: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.4

수업 내용

• 개요 (Overview): 1 장 ~3 장

• 프로세스 관리 (Process management): 4 장 ~ 8 장

• 메모리와 저장장치 관리 (Memory and storage management): 9 장 ~13장

• 분산 시스템 (Distributed systems): 14 장 ~17 장

• 보호와 보안 (Protection and security): 18~19 장

• Linux 사례 연구 : (Linux case study): 21 장

Page 5: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.5

1 장 서론

• 운영체제란 무엇인가 ? (What is an operating system?)

• 단순 일괄처리 시스템 (Simple Batch Systems)

• 다중 일괄처리 시스템 (Multiprogramming Batched Systems)

• 시분할 시스템 (Time-Sharing Systems)

• 개인용 컴퓨터 시스템 (Personal-Computer Systems)

• 병렬 시스템 (Parallel Systems)

• 분산 시스템 (Distributed Systems)

• 실시간 시스템 (Real -Time Systems)

Page 6: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.6

운영체제란 무엇인가 ?

• OS 란 – 사용자의 응용 소프트웨어와 하드웨어와의 interface 역할을 하는

프로그램으로서 컴퓨터 시스템을 효율적으로 사용하는 환경제공– 하드웨어를 제어하는 소프트웨어 (S/W that controls H/W)

S/W firmware: ROM, PROM 안에 내장된 micro code program – ( 예 ) MS-DOS, OS/2, Windows, Windows/NT, Windows 2000, Multics,

Unix, Linux, Solaris 8, Mach, MVS, VMS, Mac OS, ...

• OS 의 정의– 자원 할당자 / 관리자 (resource allocator/manager)– 제어 프로그램 (control program)– 서비스 제공자 (Service Provider)– 커널 (kernel) : 항상 실행되는 프로그램

• OS 의 주 목적– 컴퓨터 시스템을 편리하게 이용 – 컴퓨터 하드웨어를 효율적으로 활용

• 운영체제는 컴퓨터 시스템에서 가장 ??? 부분

Page 7: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.7

컴퓨터 시스템 기본 구성도

Page 8: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.8

단순 일괄처리 시스템 (Simple Batch Systems) ~

• 초기 컴퓨터 – 1 machine … 1 user

• 단순 일괄처리 시스템 (Simple Batch System)– 작업준비시간 (job set-up time) 줄여 컴퓨터 이용율 높이고자

computer operator 고용 batched together 작업전환 동안 여전히 idle time

자동작업순서 (automatic job sequencing) 로 idle time 의 제거– 상주 모니터 (resident monitor) 가 담당

OS 의 효시 작업으로 제어 이동하여 작업 완료 후 다시 모니터로 제어 이동 control cards 이용 : $JOB, $FTN, $RUN, $DATA, $END 사용자와 작업 간 상호작용 부족

– CPU idle time 발생 이유 CPU : 전자적 , MIPS(Million Instructions Per Second) I/O device : 기계적 , 20 카드 / 초

Page 9: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.9

단순 일괄처리 시스템

• CPU idle time 줄이고자 – Off-line processing: 느린 입출력 장치를 off-line 으로 하고 입출력은

magnetic-tape 으로 대치 장점

– ① on-line I/O device 보다 빠름– ② multiple reader-to-tape & tape-to-printer

단점 : 한 Job 이 실제로 run 될 때까지의 준비시간이 길어짐– Spooling (Simultaneous Peripheral Operation On-Line)

Tape: sequential-access Disk : random-access

– Printer 에 이전 작업 결과 출력하는 동안– Card reader 로부터 다음 작업을 디스크로 읽어 들임

I/O 와 계산을 Overlap

Page 10: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.10

단순 일괄처리 시스템의 주기억장치 구성도

LoaderJob sequencingControl card interpreter

상주 모니터

Page 11: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.11

다중 (Multiprogrammed) 일괄처리 시스템

• Spooling– job pool 제공 , direct access job scheduling 이 가능 multiprogramming 이 가능– (Cf.) sequential access device : FCFS (First-come First-Served) only

• Job scheduling– job pool 에 있는 job 중에서 실행을 위해 주기억 장치로 읽어 들임– 다음 수행할 job 을 결정하는 작업

• Multiprogramming– 여러 개의 프로그램을 동시에 주기억장치에 넣고 CPU 를 분할

사용하여 CPU 이용율을 높이는 기법– OS 지원 필요

I/O routine 제공 주기억장치 관리 CPU scheduling Device 할당

• CPU scheduling – 주기억 장치 안의 준비 상태인 job 중에서 실행할 job 을 선택하는 작업

Page 12: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.12

다중 일괄처리 시스템 주기억장치 구성도

여러 개의 프로그램을 동시에 주기억장치에 넣고 CPU 를 분할 사용

Page 13: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.13

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

• 다중 일괄처리 시스템의 단점 – User 는 job 이 실행되는 동안 interact 할 수 없음

• 시분할 기법 – Multiprogramming 의 확장 interactive 하게 함– CPU 시간을 아주 짧게 나누어 interact 할 수 있게 함

• 시분할 운영체제를 구현하는 기법들– 가상 기억장치 (virtual memory)

– 파일 시스템 (file system) 사용자가 data 를 편리하게 이용– 디스크 관리 (disk management)

– 병행 수행 (concurrent execution) 을 위한 CPU scheduling

– 실행 순서 제어위한 작업사이의 동기화와 통신 (job synchronization and communication) :

– 교착상태 (deadlock) 처리

• Time-sharing = CPU Scheduling + Multiprogramming

Page 14: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.14

개인용 컴퓨터 시스템 (Personal-Computer Systems)

• H/W cost 절감 PCs

– IBM PC Family : MS-DOS, Windows, OS/2 multitasking system, Windows NT, Windows 2000

– Apple Macintosh : Mac OS -> virtual memory

– Power PC

• mainframe computer 의 OS 개념들이 PC 의 OS 로 전이됨

• Personal workstation : 큰 PC, Sun, HP/Apple, IBM RS/6000

Page 15: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.15

운영체제 개념과 특징의 변천

Page 16: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.16

병렬 시스템 (Parallel Systems)

• 1 CPU -> multiple CPU (multiprocessor systems)

• 밀결합 (tightly coupled multiprocessor systems)– Bus, Clock, Memory, 주변기기를 공유– Shared memory 통해 교류

• 병렬시스템의 효과– 처리율 증진 (increase throughput) – 비용 절감 (save money): 자원의 공유 (device)– 신뢰성 항상 (increase reliability): graceful degradation

fault tolerant, fail-soft systems

• 다중처리 (multiprocessing) 의 구분– 대칭적 다중처리 (symmetric multiprocessing; SMP)

각 Processor 가 OS 를 가짐 ( 동등한 관계 ) 대부분의 현대 OS 에서 지원 SunOS Version5 (Solaris 2.x)

– 비대칭적 다중처리 (asymmetric multiprocessing) master processor 가 각 processor 에게 특정한 일을 시킴 매우 큰 시스템에서 지원 SunOS Version4 (Solaris 1.x)

Page 17: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.17

대칭적 다중처리 구조

Page 18: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.18

병렬 시스템 구조

Completely-connected network Star-connected network

Linear array network Ring network

Page 19: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.19

Mesh Network

2-dimensional mesh 2-dimensional wraparound mesh

3-dimensional mesh

Page 20: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.20

Tree Network

Fat tree network

Complete binary tree Complete binary tree with message routing

Page 21: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.21

Hypercube Network

Page 22: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.22

실시간 시스템 (Real-Time System) ~

• 엄격한 시간제약 하에서 수행되는 시스템

• 특정응용의 제어 장치 – sensor computer control– ( 예 ) automobile-engine fuel-injection, weapon

• 종류 Hard real-time system Soft real-time system

• Hard real-time system– 특정 작업이 실제시간에 완료되어야 함– kernel delay (data 를 가져와서 처리를 완료하는 데까지 걸리는

지연시간 ) 가 특정 한계 이내로 제한됨– data 를 short-term memory 나 ROM 에 저장 (virtual memory 기법은

hard real-time system 에 부적합 )– hard real-time 기능을 지원하는 범용 computer 는 없음 (hard read-

time 과 time-sharing 은 상극 ) ( 예 ) industrial control and robotics ( 제어시스템 또는 로보틱스 )

Page 23: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.23

실시간 시스템• Soft real-time system

– 중요한 실시간 작업은 다른 작업에 우선해서 실행 완료– ( 예 ) multimedia, virtual reality, advanced scientific projects

고급 OS 의 기능들이 필요함 ( 예 , Unix version 의 soft real-time기능 )

– threads– SMP(symmetric multiprocessing)– real-time scheduling

Real-time scheduling Real-time OS – EDF (Earliest Deadline First) Algorithm: deadline 이 가장 빠른

작업을 먼저 처리– Monotonic Rate Algorithm: 정해진 우선순위 ( 주기가 짧은

작업이 높은 우선순위 ) 에 따라 처리

• CPU scheduling ( 아래 참고자료 p257)– EDF Algorithm– Rate Monotonic Algorithm

• Disk scheduling ( 아래 참고자료 P282)– EDF disk scheduling– SCAN-EDF

• 참고자료 : Multimedia: Computing Communication & Applications, Steinmetz and Nahrstedt, Prentice-Hall, 1995.

Page 24: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.24

Rate Monotonic vs. EDF

Page 25: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.25

EDF 디스크 스케줄링

Page 26: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.26

분산 시스템 (Distributed Systems)

• 이완결합 (loosely coupled multiprocessor systems) – 각 processor 는 자신의 local memory 를 가짐– communication line (high-speed bus, telephone line) 통해 교류

• Processors(sites, nodes, computers) : micro processors, workstations, minicomputers, large general-purpose computer systems

• 분산시스템의 효과– 자원공유 (resource sharing)– 계산속도 증가 (computation speedup): load sharing– 신뢰성 (reliability)– 통신 (data communication): 정보 교환 ( 예 ) FTP, e-mail

• Network Operating System : Solaris 8, Netware– 파일 공유 (file sharing) 지원 – 통신 체계 (communication scheme) 지원– 독립적으로 실행하며 (acts autonomously) 네트워크로 연결된

컴퓨터와 통신 가능

• Distributed Operating System– 덜 독립적 (less autonomy between computers)– 여러 OS 가 협력하여 네트워크를 제어하는 하나의 OS 가 있는 것 같은

환상 (illusion) 제공

Page 27: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.27

NFS & DFS

• DFS(Distributed File System): 네트워크를 통해 자신의 컴퓨터에 있는 것처럼 공유될 수 있는 원격 파일 시스템

– NFS(Network File System): SunOS 5.x– RFS(Remote File System): AT&T Unix (domain 개념 지원하여 그룹별 공유 가능 )

• NFS 관리– be exported(or be shared) = 파일 시스템이 원격 마운팅 (remote mounting) 으로 이용

가능하게 되었다는 뜻– 서버 호스트

SunOS 등 BSD 계열 : /etc/exports( 예 ) /usr -access = natasha:rocky, root=natasha

Solaris: /etc/dfs/dfstab 에 share 명령 삽입하고 재부팅 또는 셸 명령으로 share 실행하고 / usr/lib/nfs/nfsd 와 / usr/lib/nfs/mountd 실행

( 예 ) share -F nfs -o rw=multi:media /myshare (multi 와 media 에게만 rw 로 허용 ) share -F nfs -o ro /usr/FTP/pub

– 클라이언트 호스트 SunOS 등 BSD 계열 : /etc/fstab

( 예 ) boris:/export/exec/sun4 /usr nfs r0 0 0 Solaris: /etc/vfstab 에 mount 정보 기록하고 재부팅

( 예 ) multi:/usr/FTP/pub multi:/usr/FRP/pub /pub nfs 1 yes - 또는 셸 명령으로 mount 실행 ( 예 ) % mount -F nfs multi:/usr/FTP/pub /mnt Llinux: $ mount -t nfs multi:/usr/FTP/pub /mnt

– dfstab 편집 , share, vfstab 편집 , mount, umount 는 root 만

Page 28: 운영체제 ( Operating System)

2000 운영체제 인천대학교 컴퓨터공학과 성미영 1.28

Hard

Hard 한 걸 Hard 하게 하면 Hard 해진다.

Hard 한 것은 아름답다 .