운영체제 Introduction 양희재교수 (hjyang@ks.ac.kr) / 경성대학교컴퓨터공학과
운영체제란? PC를구입하면 Windows XP, Windows 7, Linux, MS-DOS Mac OSX, ios 운영체제 : Operating System 운영체제가없는컴퓨터? 컴퓨터 : 프로세서와메모리 전원을켜면어떤일이? 휘발성메모리 - 야생마 프로그램을실행하려면? 여러개의프로그램을동시에실행시키려면? 프린터에인쇄명령을내리려면? 하드디스크에저장하려면?
운영체제 컴퓨터하드웨어를잘관리하여 프로세서, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크, 스피커, 마이크, GPS, 성능을높이고 Performance 사용자에게편의성제공 Convenience 컴퓨터하드웨어를관리하는프로그램 Control program for computer
부팅 (Booting) 컴퓨터구조 프로세서, 메모리 (ROM, RAM), 디스크 POST (Power-On Self-Test) 부트로더 (Boot loader) 운영체제 관리 (Management) 프로그램 프로세서, 메모리, 디스크, 입출력장치드라이브 커널 (kernel) vs 명령해석기 (shell, command interpreter)
운영체제의위치 하드웨어 > 운영체제 > 애플리케이션 2 가지그림 운영체제 vs 정부 (Government) 자원관리자 (resource manager) 자원할당자 (resource allocator) 주어진자원을어떻게가장잘활용할까? 국토, 인력, 예산 정부가직접일하지는않는다 업무별부서 : 행정부, 교육부, 국방부, 건설교통부, 농림부, 프로세스, 메모리, 입출력장치, 파일시스템,
역사 컴퓨터역사 : 1940 년대말 ~ 하드웨어발전 vs 운영체제기술발전 Card reader > memory > processing > line printer Batch processing system ( 일괄처리 ) resident monitor Multiprogramming system ( 다중프로그래밍 ) 컴퓨터는비싼자원 빠른 CPU, 느린 i/o 메모리에여러개의 job CPU scheduling, 메모리관리, 보호 Time-sharing system ( 시공유시스템 ) 강제절환, interactive system ( 대화형 ) 가상메모리, 프로세스간통신, 동기화
OS 기술천이 컴퓨터규모별분류 Supercomputer > Mainframe > Mini > Micro Supercomputer > Server > Workstation > PC > Handheld > Embedded 고성능컴퓨터의 OS 기술이 Handheld/Embedded 까지 Batch processing Multiprogramming Timesharing 고등컴퓨터구조 (Advanced Computer Architectures) 고등운영체제의등장
다중프로세서시스템 (Multiprocessor system) 병렬시스템 (parallel system) 강결합시스템 (tightly-coupled system) 3가지장점 : performance, cost, reliability 다중프로세서운영체제 (Multiprocessor OS) 분산시스템 (Distributed system) 다중컴퓨터시스템 (multi-computer system) 소결합시스템 (loosely-coupled system) 분산운영체제 (Distributed OS) 실시간시스템 (Real-time system) 시간제약 : Deadline 공장자동화 (FA), 군사, 항공, 우주 실시간운영체제 (Real-time OS = RTOS) 고등운영체제
인터럽트기반시스템 Interrupt-Based System
인터럽트 현대운영체제는인터럽트기반시스템! 부팅이끝나면? 운영체제는메모리에상주 (resident) 사건 (event) 을기다리며대기 : 키보드, 마우스, 하드웨어인터럽트 (Hardware interrupt) 인터럽트결과운영체제내의특정코드실행 (ISR) Interrupt Service Routine 종료후다시대기 소프트웨어인터럽트 (Software interrupt) 사용자프로그램이실행되면서소프트웨어인터럽트 ( 운영체제서비스이용위해 ) 인터럽트결과운영체제내의특정코드실행 (ISR) ISR 종료후다시사용자프로그램으로
인터럽트기반운영체제 운영체제는평소에는대기상태 하드웨어인터럽트에의해운영체제코드 (ISR) 실행 소프트웨어인터럽트에의해 내부인터럽트 (Interrnal interrupt) 에의해 ISR 종료되면 원래의대기상태또는사용자프로그램으로복귀 인터럽트기반운영체제 그림참조
이중모드 한컴퓨터를여러사람이동시에사용하는환경 또는한사람이여러개의프로그램을동시에사용 한사람의고의 / 실수프로그램이전체영향 STOP, HALT, RESET 등 사용자프로그램은 STOP 등치명적명령사용불가하게! 사용자 (user) 모드 vs 관리자 (supervisor) 모드 이중모드 (dual mode) 관리자모드 = 시스템모드 = 모니터모드 = 특권모드 Supervisor, system, monitor, priviliged mode 특권명령 (privileged instructions) STOP, HALT, RESET, SET_TIMER, SET_HW,
이중모드 이중모드 (dual mode) 레지스터에모드를나타내는플래그 (flag) 운영체제서비스실행될때는관리자모드 사용자프로그램실행될때는사용자모드 하드웨어 / 소프트웨어인터럽트발생하면관리자모드 운영체제서비스가끝나면다시사용자모드 일반적프로그램의실행 프로그램적재 (on memory) User mode > ( 키보드, 마우스 ) > system mode (ISR) > user mode > ( 모니터, 디스크, 프린터 ) > system mode > user mode 그림참조
하드웨어보호 입출력장치보호 Input/output device protection 메모리보호 Memory protection CPU 보호 CPU protectiopn
(1) 입출력장치보호 사용자의잘못된입출력명령 다른사용자의입출력, 정보등에방해 예 : 프린트혼선, 리셋등 예 : 다른사람의파일읽고쓰기 ( 하드디스크 ) 해결법 입출력명령을특권명령으로 : IN, OUT 입출력을하려면운영체제에게요청하고 (system mode 전환 ), 운영체제가입출력대행 ; 마친후다시 user mode 복귀 올바른요청이아니면운영체제가거부 사용자가입출력명령을직접내린경우? Privileged instruction violation
(2) 메모리보호 다른사용자메모리또는운영체제영역메모리접근 우연히또는고의로 다른사용자정보 / 프로그램에대한해킹 운영체제해킹 해결법 MMU 를두어다른메모리영역침범감시하도록 (Memory Management Unit) MMU 설정은특권명령 : 운영체제만바꿀수있다 다른사용자또는운영체제영역메모리접근시도? Segment violation
(3) CPU 보호 한사용자가실수또는고의로 CPU 시간독점 예 : while (n = 1) 다른사용자의프로그램실행불가 해결법 Timer 를두어일정시간경과시타이머인터럽트 인터럽트 > 운영체제 > 다른프로그램으로강제전환
운영체제서비스 프로세스관리 주기억장치관리 파일관리 보조기억장치관리 입출력장치관리 네트워킹 보호 기타
1 프로세스관리 Process management 프로세스 (process) 메모리에서실행중인프로그램 (program in execution) 주요기능 프로세스의생성, 소멸 (creation, deletion) 프로세스활동일시중지, 활동재개 (suspend, resume) 프로세스간통신 (interprocess communication: IPC) 프로세스간동기화 (synchronization) 교착상태처리 (deadlock handling)
2 주기억장치관리 Main memory management 주요기능 프로세스에게메모리공간할당 (allocation) 메모리의어느부분이어느프로세스에게할당되었는가추적및감시 프로세스종료시메모리회수 (deallocation) 메모리의효과적사용 가상메모리 : 물리적실제메모리보다큰용량갖도록
3 파일관리 File management Track/sector 로구성된디스크를파일이라는논리적관점으로보게 주요기능 파일의생성과삭제 (file creation & deletion) 디렉토리 (directory) 의생성과삭제 ( 또는폴더 folder) 기본동작지원 : open, close, read, write, create, delete Track/sector file 간의매핑 (mapping) 백업 (backup)
4 보조기억장치관리 Secondary storage management 하드디스크, 플래시메모리등 주요기능 빈공간관리 (free space management) 저장공간할당 (storage allocation) 디스크스케쥴링 (disk scheduling)
5 입출력장치관리 I/O device management 주요기능 장치드라이브 (Device drivers) 입출력장치의성능향상 : buffering, caching, spooling
시스템콜 System calls 운영체제서비스를받기위한호출 주요시스템콜 Process: end, abort, load, execute, create, terminate, get/set attributes, wait event, signal event Memory: allocate, free File: create, delete, open, close, read, write, get/set attributes Device: request, release, read, write, get/set attributes, attach/detache devices Information: get/set time, get/set system data Communication: socket, send, receive
예제 : MS-DOS INT 21H 관련자료 http://spike.scu.edu.au/~barry/interrupts.html 예제 : 파일만들기 (Create file) AH = 3CH, CX = file attributes, DS:DX = file name
예제 : Linux INT 80H 관련자료 http://docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.h tml 예제 : 파일만들기 (Create file) EAX = 8, ECX = file attributes, EBX = file name 시스템콜라이브러리 (library) http://www.digilife.be/quickreferences/qrc/linux%20system%2 0call%20quick%20reference.pdf