280 likes | 572 Views
운영체제 ( Operating System). Operating Systems are an ( ??? ) part of any computer system !!! 인천대학교 컴퓨터공학과 성 미 영 mailto:mysung@incheon.ac.kr http://marvel.incheon.ac.kr/~mysung. 교재 및 참고서적. 교재: Avi Silberschatz, Peter Galvin, Greg Gagne Applied Operating System Concepts
E N D
운영체제 (Operating System) Operating Systems are an ( ??? ) part of any computer system !!! 인천대학교 컴퓨터공학과 성 미 영 mailto:mysung@incheon.ac.kr http://marvel.incheon.ac.kr/~mysung 2000 운영체제
교재 및 참고서적 • 교재: 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. 2000 운영체제
수업 개요 • 교과목 개요 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 사용자가 보다 편리하게 컴퓨터를 이용할 수 있도록 도와주는 프로그램이다. 본 교과목에서는 운영체제의 기본 개념에 대하여 전반적으로 이해하며 실제 시스템을 분석해 봄으로써 새로운 운영체제를 설계하는 기초 능력을 배양한다. • 수업 목표 • 프로세스 및 병행 프로세스 관리, 기억장치 관리, 보호와 보안 등의 운영체제 기본 개념을 이해한다. • 분산 시스템을 위한 지원해야 할 프로세스간의 동기 및 통신 메커니즘에 대해 이해한다. • Linux 등의 실제 시스템을 분석하여 운영체제 설계에 응용할 수 있게 한다. • 수업방식: 강의 80%, 실습 20%, 과제가 매우 많음 • 평가방법: 중간 30%, 기말 30%, 과제 20%, 출석 및 수업기여도 20%, Bonus: http://www.hackerslab.com 2000 운영체제
수업 내용 • 개요 (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장 2000 운영체제
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) 2000 운영체제
운영체제란 무엇인가? • 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의 주 목적 • 컴퓨터 시스템을 편리하게 이용 • 컴퓨터 하드웨어를 효율적으로 활용 • 운영체제는 컴퓨터 시스템에서 가장 ??? 부분 2000 운영체제
컴퓨터 시스템 기본 구성도 2000 운영체제
단순 일괄처리 시스템 (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 카드/초 2000 운영체제
단순 일괄처리 시스템 • 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 2000 운영체제
단순 일괄처리 시스템의 주기억장치 구성도 상주 모니터 Loader Job sequencing Control card interpreter 2000 운영체제
다중 (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을 선택하는 작업 2000 운영체제
다중 일괄처리 시스템 주기억장치 구성도 여러 개의 프로그램을 동시에 주기억장치에 넣고 CPU를 분할 사용 2000 운영체제
시분할 시스템(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 2000 운영체제
개인용 컴퓨터 시스템(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 2000 운영체제
운영체제 개념과 특징의 변천 2000 운영체제
병렬 시스템 (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) 2000 운영체제
대칭적 다중처리 구조 2000 운영체제
병렬 시스템 구조 Star-connected network Completely-connected network Ring network Linear array network 2000 운영체제
Mesh Network 2-dimensional wraparound mesh 2-dimensional mesh 3-dimensional mesh 2000 운영체제
Tree Network Complete binary tree with message routing Complete binary tree Fat tree network 2000 운영체제
Hypercube Network 2000 운영체제
실시간 시스템 (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 (제어시스템 또는 로보틱스) 2000 운영체제
실시간 시스템 • 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. 2000 운영체제
Rate Monotonic vs. EDF 2000 운영체제
EDF 디스크 스케줄링 2000 운영체제
분산 시스템 (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) 제공 2000 운영체제
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만 2000 운영체제
Hard Hard한 걸Hard하게 하면Hard 해진다. Hard한 것은 아름답다. 2000 운영체제