Abstract View of System Components

Download Report

Transcript Abstract View of System Components

운영체제 (Operating System)
Operating Systems are an
(
???
)
part of any computer system !!!
인천대학교 컴퓨터공학과
성미영
mailto:[email protected]
http://marvel.incheon.ac.kr/~mysung
2000 운영체제
1.1
인천대학교 컴퓨터공학과 성미영
교재 및 참고서적
•
교재: Avi Silberschatz, Peter Galvin, Greg Gagne
Applied Operating System Concepts, XP UPdate
Wiley, 2003. ( http://www.bell-labs.com/topic/books/aos-book )
 (번역서) 응용 운영체제 개념, 조유근, 고건, 김영찬 공역,
홍릉과학출판사, 2003.
•
참고서적
– Siberschatz, Galvin, Operation System Concepts, Sixth Edition,
Addison-Wesley, 2003.
 김영찬 역, Silberschatz, Galvin 공저, 한국어판, Operating
System Concepts, Fifth Edition, 홍릉과학출판사, 1998.
– Maurice J. Bach, The Design of the Unix Operating System,
Prentice Hall International, Inc., 1986
 (번역서) Unix의 내부구조, 조유근 역편, 홍릉과학출판사,
1991.
– 기타 유닉스/리눅스 참고서적
2000 운영체제
1.2
인천대학교 컴퓨터공학과 성미영
교재 및 참고서적
•
유닉스/리눅스 참고서적
– Unix Network Programming, 2nd Ed., W. Richard Stevens, Prentice Hall PTR, 1999
 한국어 판 Unix Network Programming, Stevens 저, 김치하, 이재용 역, 대영사,
1991.
– 컴퓨터네트워크 프로그래밍, 개정판, 김화종, 홍릉과학출판사, 2000.
– The X Window System Programming and Application with Xt, 2nd Ed., Douglas A.
Young, Prentice Hall PTR, 1994
 한국어판 The X Window System Programming and Application with Xt 제 2판,
Young 저, 박승규 외 4인 역, 대영사, 1996
– K. Havilland, D. Gray, B. Salama, Addison-Wesley, Unix System Programming, 2nd
Ed., 1998(99)
 한국어판 Unix 시스템 프로그래밍 Second Edition, Keith Haviland, Dina
Gray, Ben Salama 저, 조유근 역, 홍릉과학출판사, 1999
– The Unix C Shell Field Guide, Gail Anderson and Paul Anderson, Prentice-Hall,
1986
 한국어판 The Unix C Shell Field Guide, Anderson · Anderson 저, 감창룡 역,
홍릉과학출판사, 1997
– Evi Nemeth, Garth Snyder, Scott Seebass, Trent R. Hein, Prentice Hall PTR, "Unix
System Administration Handbook, 2nd Ed.", 1995.
 한국어판, Unix System administration Handbook, 2nd Ed. Nemeth, Snyderm
Seebass, Hein 저, 최재영, 김명호, 김영배 역, 홍릉과학출판사, 1998.
– AEleen Frisch, O'Reilly, Essential System Administration, 2nd Ed.", 1996.
 시스템 관리의 핵심, 2nd Ed., AEleen Frusch 저, 장 훈 역, 한빛미디어, 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.
– Mark F. Komarinski, Cary Collett, Linux Administration Handbook, Prentice Hall,
1998.
2000 운영체제
1.3
인천대학교 컴퓨터공학과 성미영
수업 개요
•
교과목 개요
운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 사용자가
보다 편리하게 컴퓨터를 이용할 수 있도록 도와주는 프로그램이다.
본 교과목에서는 운영체제의 기본 개념에 대하여 전반적으로
이해하며 실제 시스템을 분석해 봄으로써 새로운 운영체제 및 응용
시스템을 설계하는 기초 능력을 배양한다.
•
수업 목표
– 프로세스 및 병행 프로세스 관리, 기억장치 관리, 보호와 보안 등의
운영체제 기본 개념을 이해한다.
– 분산 시스템을 위한 지원해야 할 프로세스간의 동기 및 통신
메커니즘에 대해 이해한다.
– Unix/Linux 등의 실제 시스템을 분석하여 운영체제 및 응용 시스템
설계에 응용할 수 있게 한다.
•
•
수업방식: 강의 70%, 실습 30%, 과제가 매우 많음
평가방법: 중간 30%, 기말 30%, 과제 20%, 출석 및 수업기여도 20%,
Bonus: http://www.hackerslab.com
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장
사례 연구: (Case studies): 20~24장
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)
2000 운영체제
1.6
인천대학교 컴퓨터공학과 성미영
2장 컴퓨터 시스템 구조 (Computer-System Structures)
•
•
•
•
•
•
컴퓨터 시스템 연산 (Computer System Operation)
입출력 구조 (I/O Structure)
저장장치 구조 (Storage Structure)
저장장치 계층 (Storage Hierarchy)
하드웨어 보호 (Hardware Protection)
일반적인 시스템 구조 (General System Architecture)
2000 운영체제
1.7
인천대학교 컴퓨터공학과 성미영
3장 운영체제 구조( Operating-System Structures)
•
•
•
•
•
•
•
•
•
시스템 구성요소(System Components)
운영체제 서비스(Operating System Services)
시스템 호출(System Calls)
시스템 프로그램(System Programs)
시스템 구조(System Structure)
가상기계(Virtual Machines)
자바(Java)
시스템 설계 및 구현(System Design and Implementation)
시스템 생성(System Generation)
2000 운영체제
1.8
인천대학교 컴퓨터공학과 성미영
4장 프로세스(Processes)
•
•
•
•
•
프로세스 개념(Process Concept)
프로세스 스케줄링(Process Scheduling)
프로세스에 대한 연산(Operation on Processes)
협력하는 프로세스들(Cooperating Processes)
프로세스간 통신(Interprocess Communication)
2000 운영체제
1.9
인천대학교 컴퓨터공학과 성미영
5장 스레드(Threads)
•
•
•
•
•
•
개요(Overview)
장점(Benefits)
사용자 및 커널 스레드(User and Kernel Threads)
다중 스레드 모델(Multithreading Models)
솔라리스 2 스레드(Solaris 2 Threads)
자바 스레드(Java Threads)
2000 운영체제
1.10
인천대학교 컴퓨터공학과 성미영
6장 CPU 스케줄링(CPU Scheduling)
•
•
•
•
•
•
•
•
기본 개념(Basic Concepts)
스케줄링 기준(Scheduling Criteria)
스케줄링 알고리즘(Scheduling Algorithms)
다중 처리기(Multiple-Processor Scheduling)
실시간 스케줄링(Real-Time Scheduling)
스레드 스케줄링(Thread Scheduling)
자바 스레드 스케줄링(Java Thread Scheduling)
알고리즘 평가(Algorithm Evaluation)
2000 운영체제
1.11
인천대학교 컴퓨터공학과 성미영
7장 프로세스 동기화(Process Synchronization)
•
•
•
•
•
•
•
•
•
배경(Background)
임계구역 문제(The Critical-Section Problem)
동기화 하드웨어(Synchronization Hardware)
세마포어(Semaphores)
고전적인 동기화 문제들(Classical Problems of Synchronization)
모니터(Monitors)
자바 동기화(Java Synchronization)
솔라리스 2에서의 동기화(Synchronization in Solaris 2)
윈도우 NT에서의 동기화(Synchronization in Windows NT)
2000 운영체제
1.12
인천대학교 컴퓨터공학과 성미영
8장 교착상태(Deadlocks)
•
•
•
•
•
•
•
•
시스템 모델(System Model)
교착상태의 특징(Deadlock Characterization)
교착상태 처리 방법(Methods for Handling Deadlocks)
교착상태 예방(Deadlock Prevention)
교착상태 회피(Deadlock Avoidance)
교착상태 탐지(Deadlock Detection)
교착상태로부터 회복(Recovery from Deadlock)
교착상태를 다루는 혼합 접근(Combined Approach to Deadlock
Handling)
2000 운영체제
1.13
인천대학교 컴퓨터공학과 성미영
9장 메모리 관리(Memory Management)
•
•
배경(Background)
•
•
•
•
•
스와핑(Swapping)
논리 주소 공간과 물리 주소 공간(Logical versus Physical Address
Space)
연속 메모리 할당(Contiguous Allocation)
페이징(Paging)
세그먼테이션(Segmentation)
페이지화된 세그먼테이션(Segmentation with Paging)
2000 운영체제
1.14
인천대학교 컴퓨터공학과 성미영
10장 가상 메모리(Virtual Memory)
•
•
•
•
•
•
•
•
•
배경(Background)
요구 페이징(Demand Paging)
요구 페이징의 성능(Performance of Demand Paging)
페이지 교체(Page Replacement)
페이지 교체 알고리즘(Page-Replacement Algorithms)
프레임 할당(Allocation of Frames)
스레싱(Thrashing)
다른 운영체제의 예(Operating System Examples)
기타 고려사항(Other Considerations)
2000 운영체제
1.15
인천대학교 컴퓨터공학과 성미영
11장 파일 시스템 구조(File-System Interface)
•
•
•
•
•
•
•
•
•
•
파일 개념(File Concept)
접근 방법(Access Methods)
디렉토리 구조(Directory Structure)
보호(Protection)
파일 시스템 구조(File-System Structure)
할당 방법(Allocation Methods)
가용 공간의 관리(Free-Space Management)
디렉토리의 구현(Directory Implementation)
효율성과 성능(Efficiency and Performance)
복구(Recovery)
2000 운영체제
1.16
인천대학교 컴퓨터공학과 성미영
12장 입출력 시스템(I/O Systems)
•
•
•
•
•
•
개관(Overview)
입출력 하드웨어(I/O hardware)
응용의 입출력 인터페이스(Application I/O Interface)
커널 입출력 서브시스템(Kernel I/O Subsystem)
입출력 요청의 처리(I/O Requests to Handling)
성능(Performance)
2000 운영체제
1.17
인천대학교 컴퓨터공학과 성미영
13장 대용량 저장 장치 구조(Mass-Storage Structure)
•
•
•
•
•
•
•
•
•
디스크 구조(Disk Structure)
디스크 스케줄링(Disk Scheduling)
디스크 관리(Disk Management)
스왑 공간 관리(Swap-Space Management)
디스크 신뢰성(Disk Reliability)
안정적인 저장 장치 구현(Stable-Storage Implementation)
제3 저장 장치 구조(Tertiary Storage Devices)
운영체제 이슈(Operating System Issues)
성능 이슈(Performance Issues)
2000 운영체제
1.18
인천대학교 컴퓨터공학과 성미영
14장 네트워크 구조(Network Structures)
•
•
•
•
•
•
배경(Background)
네트워크 타입(network Types)
통신(Communication)
통신 프로토콜(Communication Protocol)
설계시 고려 사항(Design Strategies)
네트워킹 예(Networking Example)
2000 운영체제
1.19
인천대학교 컴퓨터공학과 성미영
15장 분산 통신(Distributed Communication)
•
•
•
•
•
소켓(Sockets)
원격 프로시저 호출(Remote Procedure Calls: RPCs)
원격 메서드 호출(Remote Method Invocation: RMI)
CORBA
객체 등록(Object Registration)
2000 운영체제
1.20
인천대학교 컴퓨터공학과 성미영
16장 분산 조정(Distributed Coordination)
•
•
•
•
•
•
•
사건 순서화(Event Ordering)
상호 배제(Mutual Exclusion)
원자성(Atomicity)
동시성 제어(Concurrency Control)
교착상태 처리(Deadlock Handling)
선출 알고리즘(Election Algorithms)
합의(Reaching Agreement)
2000 운영체제
1.21
인천대학교 컴퓨터공학과 성미영
17장 분산 파일 시스템( Distributed-File Systems)
•
•
•
•
•
•
배경(Background)
네이밍과 투명성(Naming and Transparency)
원격 파일 접근(Remote File Access)
상태형 서비스 대 무상태형 서비스(Stateful versus Stateless Service)
파일 중복(File Replication)
시스템 예(Example Systems)
2000 운영체제
1.22
인천대학교 컴퓨터공학과 성미영
18장 보호(Protection)
•
•
•
•
•
•
•
보호의 목표(Goals of Protection)
보호의 영역(Domain of Protection)
접근 행렬(Access Matrix)
접근 행렬의 구현(Implementation of Access Matrix)
접근권한의 취소(Revocation of Access Rights)
능력 기반의 보호(Capability-Based Systems)
언어 기반의 보호(Language-Based Protection)
2000 운영체제
1.23
인천대학교 컴퓨터공학과 성미영
19장 보안(Security)
•
•
•
•
•
•
•
•
•
보안 문제(The Security Problem)
인증(Authentication)
프로그램 위협(Program Threats)
시스템 위협(System Threats)
위협 감시(Threat Monitoring)
암호화(Encryption)
컴퓨터 보안 분류(Computer-Security Classifications)
보안 모델 예(Windows NT)
Java 보안(Java Security)
2000 운영체제
1.24
인천대학교 컴퓨터공학과 성미영
20장 유닉스 시스템(The Unix System)
•
•
•
•
•
•
•
•
•
역사(History)
설계 원칙(Design Principles)
프로그래머 인터페이스(Programmer Interface)
사용자 인터페이스(User Interface)
프로세스 관리(Process Management)
메모리 관리(Memory Management)
파일 시스템(File System)
입출력 시스템 (I/O System)
프로세스간 통신(Interprocess Communication)
2000 운영체제
1.25
인천대학교 컴퓨터공학과 성미영
21장 리눅스 시스템(The Linux System)
•
•
•
•
•
•
•
•
•
•
•
역사(History)
설계 원칙(Design Principles)
커널 모듈(Kernel Modules)
프로세스 관리(Process Management)
스케줄링(Scheduling)
메모리 관리(Memory Management)
파일 시스템(File Systems)
입출력(Input and Output)
프로세스간 통신(Interprocess Communication)
네트워크 구조(Network Structure)
보안(Security)
2000 운영체제
1.26
인천대학교 컴퓨터공학과 성미영
22장 윈도우즈 NT(Windows NT)
•
•
•
•
•
•
•
•
역사(History)
설계 원칙(Design Principles)
시스템 구성 요소(System Components)
이그제큐티브(Executive)
환경 서브시스템(Environmental Subsystems)
파일 시스템(File system)
네트워킹(Networking)
프로그래머 인터페이스(Programmer Interface)
2000 운영체제
1.27
인천대학교 컴퓨터공학과 성미영
23장 윈도우즈 2000(Windows 2000)
•
•
•
•
•
•
•
역사(History)
설계 원칙(Design Principles)
시스템 구성 요소(System Components)
환경 서브시스템(Environmental Subsystems)
파일 시스템(File system)
네트워킹(Networking)
프로그래머 인터페이스(Programmer Interface)
2000 운영체제
1.28
인천대학교 컴퓨터공학과 성미영
24장 윈도우즈 XP(Windows XP)
•
•
•
•
•
•
•
역사(History)
설계 원칙(Design Principles)
시스템 구성 요소(System Components)
환경 서브시스템(Environmental Subsystems)
파일 시스템(File system)
네트워킹(Networking)
프로그래머 인터페이스(Programmer Interface)
2000 운영체제
1.29
인천대학교 컴퓨터공학과 성미영
운영체제란 무엇인가?
•
OS란
– 사용자의 응용 소프트웨어와 하드웨어와의 interface 역할을 하는
프로그램으로서 컴퓨터 시스템을 효율적으로 사용하는 환경제공
– 하드웨어를 제어하는 소프트웨어 (S/W that controls H/W)
 S/W  firmware: ROM, PROM 안에 내장된 micro code program
 내장형 OS(Embeded OS), SoC(System-on-Chip)
– (예) 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 운영체제
1.30
인천대학교 컴퓨터공학과 성미영
컴퓨터 시스템 기본 구성도
2000 운영체제
1.31
인천대학교 컴퓨터공학과 성미영
단순 일괄처리 시스템 (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 운영체제
1.32
인천대학교 컴퓨터공학과 성미영
단순 일괄처리 시스템
•
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 운영체제
1.33
인천대학교 컴퓨터공학과 성미영
Spooling
2000 운영체제
1.34
인천대학교 컴퓨터공학과 성미영
단순 일괄처리 시스템의 주기억장치 구성도
상주 모니터
Loader
Job sequencing
Control card interpreter
2000 운영체제
1.35
인천대학교 컴퓨터공학과 성미영
다중 (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 운영체제
1.36
인천대학교 컴퓨터공학과 성미영
다중 일괄처리 시스템 주기억장치 구성도
여러 개의 프로그램을 동시에 주기억장치에 넣고 CPU를 분할 사용
2000 운영체제
1.37
인천대학교 컴퓨터공학과 성미영
시분할 시스템(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
OS 중심주제
– Multiprogramming
– Time-sharing
2000 운영체제
1.38
인천대학교 컴퓨터공학과 성미영
개인용 컴퓨터 시스템(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 운영체제
1.39
인천대학교 컴퓨터공학과 성미영
운영체제 개념과 특징의 변천
2000 운영체제
1.40
인천대학교 컴퓨터공학과 성미영
병렬 시스템 (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 운영체제
1.41
인천대학교 컴퓨터공학과 성미영
대칭적 다중처리 구조
2000 운영체제
1.42
인천대학교 컴퓨터공학과 성미영
병렬 시스템 구조
Completely-connected network
Ring network
Linear array network
2000 운영체제
Star-connected network
1.43
인천대학교 컴퓨터공학과 성미영
Mesh Network
2-dimensional mesh
2000 운영체제
2-dimensional
wraparound mesh
1.44
3-dimensional mesh
인천대학교 컴퓨터공학과 성미영
Tree Network
Complete binary tree with
message routing
Complete binary tree
Fat tree network
2000 운영체제
1.45
인천대학교 컴퓨터공학과 성미영
Hypercube Network
2000 운영체제
1.46
인천대학교 컴퓨터공학과 성미영
실시간 시스템 (Real-Time System) ~
•
•
엄격한 시간제약 하에서 수행되는 시스템
•
종류
 Hard real-time system
 Soft real-time system
•
특정응용의 제어 장치
– sensor  computer  control
– (예) automobile-engine fuel-injection, weapon
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 운영체제
1.47
인천대학교 컴퓨터공학과 성미영
실시간 시스템
•
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 (Earliest Deadline First) Algorithm
– Rate Monotonic Algorithm
•
Disk scheduling (아래 참고자료 P282)
– EDF disk scheduling
– SCAN-EDF
•
참고자료 : Multimedia: Computing Communication & Applications, Steinmetz
and Nahrstedt, Prentice-Hall, 1995.
2000 운영체제
1.48
인천대학교 컴퓨터공학과 성미영
Rate Monotonic vs. EDF
2000 운영체제
1.49
인천대학교 컴퓨터공학과 성미영
EDF 디스크 스케줄링
2000 운영체제
1.50
인천대학교 컴퓨터공학과 성미영
분산 시스템 (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 운영체제
1.51
인천대학교 컴퓨터공학과 성미영
분산 파일 시스템 NFS (1)
•
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 /pub
(multi와 media에게만 rw로 허용)
share -F nfs -o ro /pub
2000 운영체제
1.52
인천대학교 컴퓨터공학과 성미영
분산 파일 시스템 NFS (2)
– 클라이언트 호스트
 SunOS 등 BSD 계열: /etc/fstab
(예) boris:/export/exec/sun4 /usr nfs r0 0 0
 Solaris: /etc/vfstab에 mount 정보 기록하고 재부팅
(예) multi:/usr/FTP/pub multi:/pub /mnt nfs 1
yes
또는 셸 명령으로 mount 실행
(예) % mount -F nfs multi:/pub /mnt
 Llinux: /etc/fstab에 mount 정보 기록하고 재부팅
(예) multi:/usr/FTP/pub multi:/pub /mnt nfs timeo=14,intr 0 0
또는 셸 명령으로 mount 실행
(예) $ mount -t nfs multi:/pub /mnt
– dfstab 편집, share, vfstab 편집, mount, umount는 root만
2000 운영체제
1.53
인천대학교 컴퓨터공학과 성미영
Hard
Hard 한 걸 Hard 하게 하면 Hard 해진다.
Hard 한 것은 아름답다.
2000 운영체제
1.54
인천대학교 컴퓨터공학과 성미영