운영체제 (OS: Operating System) 서울여자대학교 정보미디어대학 2008년 2학기
Introduction 교수소개 이름: 강 승 석 소속: 서울여자대학교 컴퓨터학부 컴퓨터학 전공 학사:고려대학교 정보통신대학 컴퓨터학과 졸업 석사: Dept. Computer Science, Michigan State University, East Lansing, USA 박사: Dept. Computer Science and Engineering, Michigan State University, East Lansing, USA 연구실 제 1과학관 307호 (#970-5755) msukang@swu.ac.kr 면담시간 목요일 78 교시 (3:00pm ~ 5:00pm)
Introduction 본 과목에 대해 교재 운영체제 개념 김길창, 김정국 편저 홍릉 과학 출판사 운영체제의 개념을 적절히 풀어서 기능별로 설명하며 좋은 예제를 사용 부교재 운영체제(내부 구조 및 설계원리), 김윤정 외 10인 (William Stalling) 운영체제 3rd ed., 김인국 외 6인, (by Gary Nutt) 운영체제 (OS Principles) 최은미 외 2인 (by L. Bic and A. Shaw)
Introduction 본 과목에 대해 성적평가 구성비율 시험 : 75% 숙제 : 10% 수시시험(퀴즈) : 10% 중간고사 35% 기말고사 45% 숙제 : 10% 기간은 1주일이고 개인별 숙제임 자료 조사, 문제풀이 수시시험(퀴즈) : 10% 수업 후 당일 배운 내용을 간단히 복습하는 1-2 문제 (4회 실시) 출석: 5% 수업 시작 후, 종료 후 부름 한번 결석 시 1점 감점, 지각 2회를 결석 1회로 취급
Introduction 평가 기준: 상대평가 F 학점을 받는 경우 상대평가 이므로 숙제는 스스로 할 것 A+(95~100), A0(90~94): 20~40% B+(85~89), B0(80~84): 30~50% C+(75~79), F(0~59): 10~50% Plus와 Zero는 절반 정도씩 배정함 F 학점을 받는 경우 수업 일수의 1/3을 초과한 결석학생 (중간, 기말) 시험 미 시행자 혹은 백지 답안 제출학생 성적 미달자 상대평가 이므로 숙제는 스스로 할 것
운영체제 (OS:Operating System) 강의내용 개요: Ch01~Ch03 소개 컴퓨터 시스템 구조 운영 체제 구조 프로세스 경영: Ch04~Ch07 프로세스 개념 병행 프로세스 교착 상태 기억 장치 경영: Ch08~Ch09 메모리 경영 가상 메모리 경영 보조 기억 장치 경영 파일과 보호: Ch10~Ch11 파일 시스템 보호 분산 처리: Ch12~Ch14 컴퓨터 네트워크 원격 파일 분산 컴퓨팅
운영체제의 종류 Microsoft Unix Macintosh IBM 기타 운영체제 MS-DOS Windows 1.0 / 2.0 / 3.0 / 3.1 / 95 / 98 Windows NT / 2000 / ME / XP / Vista Unix FreeBSD, Solaris, AIX, HP-UX, SCO-Unix, Xenix, Minix, Xinu,… Linux: Red Hat, Fedora, SUSE, Mandrake, Debian, Haansoft Macintosh MacOS I,…,IX, X IBM OS 360/370/390 기타 운영체제 Palm OS, Android, Win CE, Embedded OS, Real Time OS, …
컴퓨터 시스템의 기본구조 1946년부터 지금까지 변하지 않은 컴퓨터의 기본 요소 Processor Input Control Memory Datapath Output
Motherboard Video Card (AGP) CPU Memory
컴퓨터 시스템의 기본구조 중앙처리장치 (CPU: Central Processing Unit) 명령어들을 메모리로부터 가져와(fetch) 해독(decode)하고 실행 ALU, Registers, Control Unit 등으로 구성 시스템 버스 (System Bus) Data Bus: 시스템 구성요소 들을 연결하여 데이터 전송 Control Bus: 시스템 구성 요소들의 작동을 통제함 기억장치 (Memory) 프로그램과 자료를 저장 계층화 구조: Register, Cache, Main Memory, External Memory 입출력장치 (Input/Output Devices) Disk Drive, Display, Key board, Printer CPU, Memory 등과 시스템 버스로 연결
운영체제 (Operating System) ? CONVENIENCE COMPILER EDITOR . . . DB OS HARDWARE EFFICIENCY
운영 체제의 목적 운영체제 OS의 목적 OS의 역사 무엇인가? 어떠한 일을 하는가? 사용자의 편의성 자원의 효율적인 관리
컴퓨터 시스템의 계층
운영체제 응용 프로그램의 실행을 제어하는 Program 응용 프로그램들과 하드웨어 간의 Interface 목표 편리성 컴퓨터를 사용하기 쉽도록 함 효율성 컴퓨터 시스템 자원을 효율적인 방법으로 사용할 수 있도록 함 기능 추가 효과적인 응용 프로그램 개발과 검사, 새로운 시스템 기능 도입 시 기존의 서비스를 방해하지 않고 수용해야 함
각 시스템에서의 운영 체제 소개 초기 시스템 초기 일괄 처리 시스템 (Batch System) 다중 프로그래밍 (Multi-Programming) 시분할 (Time Sharing) 시스템 PC (Personal Computer) 시스템 병렬 시스템 (Parallel System) 분산 시스템 (Distributed System) 실시간 시스템 (Real Time System) 내장형 시스템 (Embedded System)
초기 시스템 초기 시스템 1956년 경 이전에 주로 이용 프로그래머가 모든 작업 수행 요청서에 사용희망시간 기재 후 예약시간동안 사용 스위치를 통해 수작업으로 프로그램을 적재(load) 후 실행 I/O 장치와 COMPILER는 후에 추가 활용 측면에서 비효율적임 (Sign-up Sheet) 예약시간 전에 끝나면 컴퓨터는 사용 안됨 예약시간 안에 작업 마치지 못하면 중단 후 나중에 다시 예약 준비 시간 (Warming up) 과다 Tape을 주로 이용 숙련되지 않은 사용자가 장치를 가동함
ENIAC Computer First General Purpose Digital Computer (1943~1946 U. of Pennsylvania) - 1900 additions per second
일괄 처리 Early batch system bring cards to 1401 read cards to tape put tape on 7094 which does computing put tape on 1401 which prints output
한 작업에 대한 card deck 예제
일괄 처리 간단한 모니터 (Simple Monitor) (1960~) Operator (전문가) 기계 장치를 전문으로 다루는 직업 등장 Batched (Tape Based) 의 의미 요구 수준이 비슷한 작업들을 함께 묶어서 실행 Fortran, Assembler, Fortran 세 작업 차례로 실행하면 작업 교체 시 부수적으로 시간이 소요됨 두 Fortran 작업을 묶어 연속해 실행하고 Assembler는 따로 실행 Resident Monitor 입출력 관리자 혹은 인터럽트 처리기를 메모리에 상주시킴 상주 프로그램에 의한 자동적인 작업 처리 제어 카드 번역
Simple (Resident) Monitor 상주 모니터의 역할 제어 카드 해석 $JOB, $FORT, $LOAD, $RUN, $END 프로그램 Loader (적재기)를 통한 프로그램 load Off-Line Processing 일괄처리 시스템에서 작업 명령어를 연속으로 읽어 들임 작업과 사용자 사이에 interaction이 없음 오류 발생, 현재 작업 진행정도 등을 쉽게 알 수 없음
Multiprogramming 다중 프로그래밍 (1962~) 한 시점에 운영체제가 여러 작업을 메모리에 적재 후 실행함 한 프로세스가 입출력을 실행하는 동안 다른 프로세스에 CPU를 할당하여 실행시킬 수 있음 시스템 자원을 효율적으로 사용하게 됨 다중 프로그래밍에서는 CPU가 항상 할 일이 있음 실행될 작업이 항상 대기하고 있는 경우 실행할 프로세스 관리 메모리를 적절히 운영해야 할 필요가 있음 메모리 관리 *프로그램이 여러 개 있을 때에 전체 처리 시간은 다중 프로그래밍을 하지 않으면 이들의 합이 되나 다중 프로그래밍을 하면 이들의 최대치에 접근한다.
CPU-I/O Overlap … … … I/O Operation Uses CPU Ready Processes CPU Device … Ready Processes I/O Operation CPU Device … Ready Processes Uses CPU CPU Device
Uniprogramming/Multiprogramming 프로세서는 프로그램이 계속 실행되기 위해 I/O 작업이 완료되기를 기다림 하나의 프로그램이 I/O 작업을 위해 기다리는 경우 프로세서는 다른 프로그램을 선택해서 실행함
Multiprogramming 하나의 프로그램이 I/O 장치 이용을 위해 대기하는 동안 CPU가 다른 프로그램을 실행할 수 있도록 함
Time Sharing System: 시분할 시스템 Abstract Machines Result Physical Machine Command Result Command … Result Command
Time Sharing System 시분할 시스템 (1970~) Batch 시스템의 단점은 사용자와 JOB 간의 Interaction이 없다는 데 있음 반환 시간이 길고 다단계 작업이 어려움 Time Sharing은 Multi-User, Multi-Access 방식임 Time-Sharing은 Multiprogramming을 이용하고 프로세스의 선택을 위해 CPU Scheduling 을 사용 여러 프로세스가 메모리를 충분히 사용하도록 가상메모리 이용 프로세스들 사이의 통신, 동기화, 교착상태 등을 고려해야 함 Time Slice 한 프로세스에 대해 한번에 할당되는 CPU 시간
CPU 의 Time Sharing Time slicing
Personal Computer 개인용 컴퓨터 (1970 중 후반) Macintosh의 Apple PC, IBM PC 및 호환 기종 초기 OS는 CP/M, MS/DOS 등 이었으나 현재는 대형 기종에서 사용했던 여러 고급 기능을 제공함 이런 추세의 대표적인 예는 MULTICS임 1965~1970년 MIT에서 개발 GE 645 대형 기계에 구현 UNIX도 PDP-11 위에 개발되면서 계속 발전함 IBM의 OS/2, Microsoft의 Windows, Apple의 MacOS 등 편리한 GUI 제공으로 사용이 용이 이런 추세는 workstation 제품에도 나타남
병렬 시스템 (Parallel System) Multi-processing 시스템 CPU가 여러 개 있어서 Bus, Clock, 메모리 등을 공유 Tightly Coupled System 처리 능력과 신뢰성의 향상 N개의 CPU가 있다고 N배의 성능이 향상되지 않음 메모리 접근 등의 여러 오버헤드 발생 한 프로세스 고장 시 다른 프로세스가 역할을 대신함 전체 시스템이 중단되지 않음 여러 개의 처리기를 활용하는 방식에 따라 대칭(동등한 관계): SMP (Symmetric Multiple Processing) 비대칭(주종 관계) 주 프로세서가 전체를 통제하고 종속 프로세서가 입출력이나 계산 등의 정해진 일 수행
Distributed System 분산 시스템 컴퓨터 네트워크를 이용 분산 시스템 구축 동기 메모리나 Clock을 공유하지 않고 독립적인 자원으로 처리 연결 형태는 LAN과 WAN Loosely Coupled System 다양한 성능의 CPU가 공존하며 주변장치를 공유하기도 함 분산 시스템 구축 동기 자원 공유: 다른 위치에 있는 자원 사용가능 계산의 신속화: 한 작업을 여러 사이트에 분배하여 동시 수행 신뢰성: 한 사이트 고장 시 다른 사이트에서 구동 통신: 사용자가 네트워크에 접근한다는 사실을 알지 못하게 함
Real-Time System: 실시간 시스템 On-Line 시스템과 Real-Time 시스템 두 시스템 모두 특수한 용도에 사용됨 은행과 항공 좌석 예약 시스템 등은 Online 시스템 공정 제어와 인공 위성 추적 시스템 등은 Real Time 시스템 입출력의 직접성과 이들 처리의 시한성(deadline)이 두 시스템을 구별하는 기준이 됨 Real-time 은 soft 시스템과 hard 시스템으로 구분 Soft RTS: 제한된 시간에 처리 하지 못해도 작동 Voice controller in a cell phone Hard RTS: 제한된 시간 내에 처리해야만 함 원자로 제어 시스템, 미사일 제어 시스템, 공정제어 시스템
Embedded System 내장형 시스템 특수한 목적의 시스템에 내장 휴대폰, 가전기기, PDA, Set-Top Box, 교통제어, Robotics 등 시스템의 특성으로는 내구성, 이동성, 실시간 및 낮은 가격 등이 요구됨 대표적으로 사용되는 운영체제에는 VxWorks, WinCE, JAVA와 Linux 계열 기능상의 특징 RAM 또는 메모리 기반 파일 시스템 빠른 부팅과 유무선 통신 XIP(eXecute In Place) 및 Component의 개념으로 운영체제 구성
Embedded System