What is Operating System
OS 소개 Introduction 설계목표 기본 용어 Resource Management History
Introduction OS? OS 목적 다수의 사용자에게 자원을 공유하게 함. 이를 쉽게 할수 있도록 편의를 제공 자원들을 관리하는 Program Module : Processor, Main memory, Auxiliary Memory, I/O Device, File 등 관리 자원공유: 1. 자원 사용시 생길 수 있는 Conflict를 해결 2. Computer performance를 극대화 3. Computer system를 효율적으로 이용 4. User Program과 실제 Computer Hardware사이의 Interface로써 작용 OS 목적 다수의 사용자에게 자원을 공유하게 함. 이를 쉽게 할수 있도록 편의를 제공
Introduction Operating System Hardware User access to access the OS Apps Audio Video File Browser Debugger Micro Processor Editor Compiler Assembler Loader Operating System Memory Management Process Management I/O Management Information Management Hardware
설계 목표 Throughput Response Time 단위 시간당 얼마만큼의 생산성을 올리는가? Maximize the throughput General Purpose operating system Response Time 요청한 일을 얼마만큼의 빨리 수행하는가? Maximize the Response time Real-Time operating system
기본용어 Job Job step Process 요구되는 일의 단위 상호 의존관계가 없음. Program/Process/Task Thread Process 해당되는 Job step에 지시된 Program을 토대로 실행되는 작업을 의미 OS가 보는 관점. (User는 Job, Jobstep) OS가 처리하는 작업의 단위 관련 자원 – program, PCB, Switcher, Dispatcher.
Resource Management Resource Resource Management view hardware : main memory, processor, aux-device, file software : structures in OS, allocated structures to apps. Resource Management view OS는 Resource Manager Resource conflict protection. 요청자 상태 파악, 자원배분 정책, 자원 할당/회수 1. memory management 2. processor management 3. auxiliary device management 4. Information(file) management
History 1940 (0세대) 1950 (1세대) 1960 (2세대) 1960중 ~ 1970년대중반 (3세대) 년도 특징 주요내용 1940 (0세대) No Operating system Machine language 상용 1950 (1세대) Batch Processing System IBM 701 OS (OS 효시), Batch type 1960 (2세대) Multiprogramming Real Time system Time sharing System Multiprogramming, Multiprocessing, Virtual Memory, Memory, High level language로 OS작성, Data 통신 지원용 OS 1960중 ~ 1970년대중반 (3세대) IBM system/360 범용 System 개념 도입 Multimode system OS/360, DOS/360 Batch, Time sharing, Real Time, Multi-processing을 하나의 System에서 모두 제공 (Multi-mode) UNIX 개발(bell labs.) 1970중반 ~ (4세대) Virtual machine, micro computer용 OS User friendly system, Distributed Data Processing Virtual Memory, 통신망 service OS, Data Base 중요성인식, CP/M, MS-DOS, UNIX 3.0, XENIX, OS/2, V60 WINDOWS.
소개 State model JOB scheduling Processor scheduling Switch & dispatcher Management 소개 State model JOB scheduling Processor scheduling Switch & dispatcher
Introduction for processor management processor를 process(job)에 할당하는 것 Job scheduler : (multi-processor) process를 생성하고, process에 processor를 할당 작업 할당 순서를 결정 Job scheduling Process scheduler : (single-processor) Job scheduler에서 선택된 Job에게 Processor를 배정(assign)하는 것 Processor scheduler : Multi-programming에서 Ready-State에 있는 process에게 언제(pick),얼마 동안(quantum) processor를 할당할 것인지 결정. Traffic controller : process의 상태를 trace한다.
Processor를 할당 받아서 실행이 되는 상태. Process State Model Submit State Program이 실행명령을 받음 Run State Processor를 할당 받아서 실행이 되는 상태. Terminate State Program이 실행 종료명령을 받음 Read State 실행할 준비가 되었으나, processor를 할당 받지 못함. Blocked State 필요한 자원을 할당 받지 못하여 대기함. Suspend State Process가 멈추어서 실행금지 상태
Job Scheduler Job Scheduler No meaning in single-processor
Process Scheduler Processor scheduler Scheduling policy process에 processor를 할당하는 방법 할당 받은 processor에 process를 lunching 시켜 주는 것을 Dispatcher라고 한다. 모든 process의 상태파악, process분배정책(scheduling) 수행, processor회수 traffic controller의 process 상태파악 -> PCB에 데이터 저장 Scheduling policy process에 processor를 할당하는 정책 Priority Time Quantum process 종료 process blocking Error Round-Robin
Switcher & Dispatcher switcher Dispatcher Proccessor (CPU) Dispatcher process switcher Proccessor (CPU) process Dispatcher
Storage Compaction & Scatter Loading ETC Memory Management Introduction Protection Hardware Single Partition Fixed Partition Dynamic Partition Storage Compaction & Scatter Loading ETC
Introduction Pagen (4KB) Page-Out Pagei+2 (4KB) Pagei+1 (4KB) Page-In 초기 main memory는 매우 작았으며, 프로그램도 크기 않음 : overlay 기법, 프로그램 분할 main memory를 효율적으로 분배하고 OS전체의 목적과 부합하도록 사용하는 방법: Continuous Loading – program이 연속적인 메모리에 탑재 Scatter Loading – program이 partition/page단위로 나뉘어 산재되어서 메모리에 탑재. Pagen (4KB) app1 app Page-Out Pagei+2 (4KB) Pagei+1 (4KB) Page-In Pagei (4KB) Page0 (4KB) Main Memory Disk
Protection Hardware Protect the memory process들이 사용하는 메모리 충돌을 회피하는 방법 process들이 같은 space를 사용하면, process영역을 나누어서 사용한다. -- window CE, RTOS, firmware, pthread on linux…. -- Non-MMU process 별도 별도의 space가 정의되면, 고려할 필요가 없다. -- MMU Main memory Partition 문제로 연결됨.
Single partition 감시 program 실행 program Main Memory Advantage 초기 main memory는 매우 작았으며, 프로그램도 크기 않음 : overlay 기법, 프로그램 분할 Advantage 단순하다. OS내에 감시program이 작다. 실행program공간이 넓어진다. 이해하기 쉽다. 감시 program 실행 program Disadvantage memory 낭비가 심하다. I/O 수행시 process 실행 안됨 main memory보다 큰 program 실행 안됨. Main Memory
Fixed partition 감시 program 실행 program 실행 program 실행 program main memory의 용량이 커지고, CPU의 처리속도가 빨라지면서, multi-programming 이 중요하게 되었다. Advantage 실행 program들을 분석하여 partition 크기를 맞추면 효율적이다. 감시 program 실행 program Partition Disadvantage 실행 program Partition memory 낭비가 많을 가능성이 높다. fragmentation이 발생한다. partition을 줄이면 실행가능한 program크기가 작아진다. 실행 program Partition Main Memory
Dynamic partition 감시 program Roll-In 실행 program 실행 program 실행 program Job step의 요구에 맞게 main memory를 동적으로 할당하는 방법. 요구량에 맞게 연속된 메모리를 할당해야 하지만, 필요한 메모리가 없을 경우, Roll-out/Roll-in 기능을 사용하여, 보조메모리(disk)를 사용한다. memory allocation 방법 -- First Fit -- Best Fit 감시 program Roll-In 실행 program app1 app Partition 실행 program Partition 실행 program 실행 program Partition Roll-Out Main Memory Disk
Scatter Loading Partition Partition Partition Partition Main Memory Loading 할 program이 연속된 memory에 있어야 한다는 고정관념을 깨버렸다. Hardware의 도움을 받음 (MMU) program을 분산하여 로딩함. Loading 전략 -- Best Fit -- First Fit -- Worst Fit Partition 실행 program Partition Partition Partition Main Memory
ETC swap-Out program swap-In Main Memory Disk Swapping : -- 현재 수행중인 program만 memory에 탑재되고, 그 외의 것은 swapping되어 disk에 있다. Overlay : -- swapping 처럼 전체 program을 바꿔치지 않고, -- 필요한 부분만 swap하는 방식 Paging : app1 app swap-Out program swap-In Main Memory Disk
Virtual Storage 소개 Address 지정기구 Dynamic Relocation Thrashing
Device Management Policy Device Characteristics Introduction Device Management Policy Device Characteristics
Introduction Device management Printer, Disk, Serial등의 I/O Device와 이를 control한다. I/O Device의 속도에 따라 제어해준다. -- UCB (Unit Control Block)를 사용하여 제어한다. I/O Device는 3가지로 나눌수 있다. -- Dedicated : 한 process가 전용으로 사용한다. -- Shared : 여러 process가 공용으로 사용한다. -- Virtual : 하나의 I/O device를 여러 개로 보이게 만들어 사용한다. I/O management에 3가지 Module이 필요하다. -- I/O traffic controller : 상태파악 -- I/O scheduler : 요청이 있을 때 분배. -- I/O Device hander (device driver) : 실제하드웨어 조작
Device Management Policy Dedicated Device : 하나의 process가 Device를 상용하면, 끝날 때까지 계속 사용한다. I/O device 특성에 따라 결정된다. 예 : serial communication, printer Shared Device 여러 개의 process가 동시에 Device를 공유하게 된다. 우선순위에 따라 scheduling 이 동작할 수 있다. 효율성을 높이기 위해 우선순위에 따른 scheduling을 포기할 수 도 있다. 예) Disk (ladder algorithm) Virtual Device printer device 처럼 Dedicated device를 spooling 기법을 통하여 Shared Device로 바꾸는 것
Device Characteristics By hardware I/O device : 외부세계와 연관이 있는 장치로 외부의 입력을 받거나/출력하는 장치. 속도가 느리고 I/O가 streaming 방식인 특성이 있다. 소형일 경우 CPUT가 직접I/O를 수행할 수 있다. 예 : serial communication, printer Storage Device 자료를 수록하고 다시 읽을 수 있는 Device. 외부세계와 별도로 computer내부에서 동작한다. Access 방식에 의해 분류된다. -- Serial Access Device : Tape -- Direct Access Storage Device : Disk -- Random Access Storage Device : flash memory, SSD
Access Control Verification Logical Filesystem Physical Filesystem Infomation Management 서론 Simple Filesystem Symbolic Filesystem Basic Filesystem Access Control Verification Logical Filesystem Physical Filesystem Allocation Strategy Module
Introduction Processor management Computer 내의 정보(Information)을 검색하는 기능 Filesystem : Information Management Module을 집합적으로 부르는 말. 기억장치관리의 한 부분으로, 보조기억장치의 File을 관리 정보를 보관하거나, 정보를 여러 사람이 공유할 수 있도록 하는 수단 제공 Filesystem의 기능 File creation, modification, deletion. File sharing. File backup, recovery. File encryption/decryption Filesystem Interface support. DBMS 제공
Inter-process Communication DeadLock Concurrent Process Introduction Determinancy Mutual Exclusion Synchronization Inter-process Communication DeadLock
Introduction Concurrent process 2개 이상의 관련된 process가 동시에 실행되는 것 다수의 Computer가 Network를 이루어 수행되는 Distributed system에서는 필수. 요구 조건 -- Determinancy : 결과의 항상성 -- Mutual Exclusive problem -- Concurrent process -- synchronization -- Inter-process communication -- DeadLock
Introduction Operating System Barrier Barrier Barrier Multi-process
Determinancy Definition 2개 이상의 관련된 process들이 기억장소를 공유할 때, 최종결과는 초기값에만 의존하고, 각 process의 상대적인 진행 순서에는 영향을 받지 않는다.
Mutual Exclusion Definition 2개의 관련된 process들이 공유자원을 번갈아 사용할 수 있게 하지만, 동시에 수행하지 못하게 하는 것으로 program들이 공유자원을 함께 Access할 때 필요. CriticalSection -- producer/consumer problem -- fork/join structure
Synchronization Definition 2개의 관련된 process들이 하나의 기능을 공동 협력하여 수행할 때, 이들 상호간에는 동기화가 필요하다. 동기화는 신호를 통해 이루어지는데, 상호배제 문제를 해결하기 위해서는 이 동기화문제가 해결되어야 한다. Semapohre Mutex Event Conditional Variables. -- bounded buffer problem -- reader/writer problem -- chinese(philosophic) chopstick problem.
Inter-process communication Definition 2개의 관련된 process들이 통신하는 기법 두가지. Shared Memory Process의 공유변수 사용. OS는 단지 shared memory만 제공, communiation은 apps책임 Message System 메시지를 주고받을 수 있게 한다. Message Queue MailBox Buffering problem의 한계
DeadLock Definition How to manage Multiprogramming system에서 발생할 수 없는 resource를 대기하고 있는 process 상태. How to manage Protocol을 정하는 방법. - Mutual Exclusion - Hold and Wait - Non-Preemption - Circular Wait Recovery mechanism from DeadLock state.
서론 UNIX의 역사 UNIX구조의 특성 Programmer Interface User Interface Operating System 서론 UNIX의 역사 UNIX구조의 특성 Programmer Interface User Interface Process Control Filesystem
What is Operating System