Operating Systems Overview

Slides:



Advertisements
Similar presentations
Embedded System 2009 년 11 월 16 일 Embedded Computer1 ● Hardware 와 Software 가 조합되어 특정한 복적을 수행하는 시스템 ● 특정한 기능을 수행하도록 Micro Processor 와 I/O Device 를 내장하며,
Advertisements

컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Chapter 2 Operating System Overview
Linux/UNIX Programming
1. 개발 시스템 개요.
소프트웨어와 운영체제.
Power Java 제3장 이클립스 사용하기.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows Server 장. Windows Server 2008 개요.
Operating Systems Overview
Operating Systems Overview
Introduction to Web Service Computing
제 2 장 운영 체제 시스템 Section 1 초기 운영 체제 Section 2 운영 체제의 종류
Uniprocessor Scheduling
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
14장. 병렬 프로세서 다루는 내용 병렬 프로세서로의 개념 병렬 처리와 병렬 컴퓨터 분류 배열 프로세서와 다중 프로세서의 개념
Ubiquitous Computing Practice - Part I (Installation) -
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
운영체제 (OS: Operating System)
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
2 운영체제 소개.
Visual Basic .NET 처음 사용하기.
Lecture #3 프로세스(Process).
저장장치 테이프 I/O장치 작업 사용자 프린터 디스크 주기억장치(RAM) OS 카드판독기 CPU 키보드 처리장치.
운영체제 (Operating Systems) (Multi-Thread Programming)
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
WinCE Device Driver 실습 #2
병렬 처리/컴퓨터 기초.
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
Xen and the Art of Virtualization
1장 운영체제 2-C반 운영체제 박소라.
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
제5장 CPU스케줄링(CPU Scheduling)
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Linux/UNIX Programming
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
Device Driver 임베디드 시스템 I.
멀티미디어시스템 제 6 장. 운영체제 IT응용시스템공학과 김 형 진 교수.
운영체제(Operating System)
Go Lang 리뷰 이동은.
제1장 Unix란 무엇인가?.
제 1 장 운영 체제의 개요 Section 1 운영 체제의 개념 Section 2 운영 체제의 구성과 기능
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
LabVIEW WiznTec 주임 박명대 1.
ARM Development Suite v1.2
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Linux/UNIX Programming
운영체제의 개요 과목: 운영체제 학번: 이름: 조장호.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
( Windows Service Application Debugging )
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
3과목 운영체제 강사 이 민 욱.
운영체제 (Operating Systems)
System Security Operating System.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture #4 쓰레드(Thread).
06. 디바이스의 등록과 해제 김진홍
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
7 생성자 함수.
Operating Systems Overview
Presentation transcript:

Operating Systems Overview Lecture #2 Operating Systems Overview

강의 내용 운영체제의 개요 운영체제의 발전 역사 현대 운영체제의 특징 시스템 호출 운영체제의 구조 1) 직렬 처리 시스템 2) 단순 일괄처리 시스템 3) 다중 프로그램 일괄처리 시스템 4) 시분할 시스템 현대 운영체제의 특징 시스템 호출 운영체제의 구조 Operating System

Operating System 응용 프로그램의 실행을 제어하는 프로그램 사용자와 하드웨어 사이의 인터페이스 OS는 사용자의 요구에 맞추어 응용 프로그램의 실행과 종료를 제어한다 OS는 다수의 응용 프로그램 사이에 효율적인 자원 공유를 제어한다 사용자와 하드웨어 사이의 인터페이스 응용 프로그램에 제공하는 기능에 대해 하드웨어의 상세한 제어 기능을 감추다 (Masking) 예: 하드디스크 입출력, 프린터 출력 등 OS가 하드웨어의 세부적인 제어를 수행하여야 한다 Operating System

컴퓨터 시스템의 계층적 구조 Application Programs Utilities Operating-System End User Programmer Operating- System Designer Computer Hardware Operating-System Utilities Application Programs 컴퓨터 시스템의 계층적 구조 Operating System

OS Services(1) 프로그램 개발 환경 제공 프로그램 실행 I/O 와 파일에 대한 접근 시스템 접근 editors, compilers, linkers, and debuggers 프로그램 실행 loading in memory, I/O and file initialization I/O 와 파일에 대한 접근 외부 장치에 대한 입출력 및 파일 입출력 시스템 접근 시스템 자원 및 데이터에 대한 접근 보호 시스템 자원 접근 충돌 해결 Operating System

OS Services(2) 에러 검출 에러 해결 내부 및 외부 하드웨어 에러 소프트웨어 에러 운영체제 에러 간단한 에러 리포팅 memory error device failure 소프트웨어 에러 arithmetic overflow access forbidden memory locations 운영체제 에러 에러 해결 간단한 에러 리포팅 오퍼레이션의 재시도 응용 프로그램 중단 Operating System

OS Services(3) 계정 관리 시스템 자원 사용에 대한 통계 수집 시스템 성능 모니터링 (eg: response time) 시스템 튜닝 자료 수집 과금 자료 수집 (on multiuser systems) Operating System

운영체제의 발전 OS는 하드웨어의 기능향상 및 새로운 종류의 하드웨어을 적절히 이용하여야 한다 Character vs graphic terminals paging hardware 등 OS는 새로운 서비스를 제공하여야 한다 예: internet support 등 OS의 설계 및 구현 기술에 따른 변화의 필요성 modular construction with clean interfaces object oriented methodology Operating System

운영체제의 발전 역사 직렬 처리 시스템(Serial Processing) 단순 일괄처리 시스템(Simple Batch Processing) 다중 프로그램 일괄 처리 시스템 (Multiprogrammed Batch Processing) 시분할 시스템(Time-Sharing Systems) Modern Operating Systems: 병렬 시스템(Parallel Systems) : SMP 분산 시스템(Distributed Systems) 실시간 시스템(Real-Time Systems) 내장형 시스템(Embedded Systems) Operating System

직렬 처리 시스템(Serial Processing) 가장 초창기 컴퓨터 시스템 환경 (late 1940s~mid 1950s) 프로그래머가 직접 컴퓨터 하드웨어를 제어 운영체제가 없다 주요 문제점: Scheduling: 비효율적인 job scheduling Setup time: 하나의 job을 수행하기 위한 setup time이 상당히 길다 Operating System

단순 일괄 처리 시스템 (1) 최초의 운영 체제 (mid-1950s) 동작 방식: 사용자는 카드 등으로 작성된 작업(job)을 컴퓨터 운영자에 제출한다 컴퓨터 운영자는 제출된 사용자 작업을 묶어 일괄작업(batch)을 컴퓨터에 입력한다 ‘모니터(Monitor)’ 프로그램이 일괄작업의 각 작업을 순서대로 실행한다 상주 모니터(Resident monitor)는 항상 실행되기 위해 주기억장치에 상주한다 모니터 유틸리티는 필요할 때에 주기억장치에 올라온다(loading) Operating System

단순 일괄 처리 시스템 (2) 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 Operating System

Simple Batch System Operation Operating System

모니터(Monitor) 모니터는 입력장치(카드판독기)에서 각 작업(사용자 프로그램)을 하나씩 읽어 들여 주기억장치에 저장한다(loading) 모니터 명령어에 의해 사용자 프로그램 실행이 시작된다 사용자 프로그램은 다음 상황 까지 실행된다: end-of-program 명령어 에러 발생 하나의 사용자 프로그램이 종료되면 다시 모니터가 실행된다. Operating System

Job Control Language (JCL) (1) 모니터에게 작업 실행과 관련된 명령을 주기 위한 언어 what compiler to use what data to use 작업 포맷의 예: ----------------->> ‘$FTN’ 는 컴파일러을 불러 들여 프로그램 번역을 수행 하도록 한다 ‘$LOAD’는 번역된 객체 코드를 주기억장치에 올린다(loading) ‘$RUN’ 는 사용자 프로그램을 실행한다 $JOB $FTN ... FORTRAN program $LOAD $RUN Data $END Operating System

Job Control Language (JCL) (2) Structure of a typical FMS job – 2nd generation Operating System

일괄 처리 운영체제 CPU 및 다른 컴퓨터 자원의 유휴시간이 크다 사용자 프로그램과 모니터 프로그램을 교대로 실행한다 사용자 프로그램이 입출력을 수행하는 경우에 CPU는 입출력 작업이 종료될 때까지 idle 상태에 있는다 사용자 프로그램과 모니터 프로그램을 교대로 실행한다 주기억장치 상의 여러 프로그램을 효율적인 교대 수행하기 위해서는 하드웨어 지원을 필요로 한다 Operating System

하드웨어 기능 향상(1) 메모리 보호 타이머 사용자 프로그램이 시스템 영역의 메모리에 접근할 수 없도록 메모리 보호 기능 지원 하나의 작업이 시스템을 독점하는 것을 막는다 주어진 시간이 지나면 인터럽트를 발생한다 Operating System

하드웨어 기능 향상(2) 특권 명령어 인터럽트 두개의 CPU 명령어 모드 지원 모니터에 의해서만 수행되는 명령어 사용자 모드 모니터 모드(또는 슈퍼바이저(Supervisor) 모드) 모니터에 의해서만 수행되는 명령어 사용자 프로그램이 실행하면 인터럽트 발생 인터럽트 사용자 프로그램과 모니터 사이의 제어권 전환을 융통성있게 할 수 있도록 지원 Operating System

다중 프로그램 일괄처리 시스템(1) I/O 동작의 수행속도는 연산 명령어에 비하여 상당히 느리다 따라서 주기억장치에 하나의 프로그램만 있는 경우(uniprogramming)에는 CPU의 효율성이 떨어진다 Operating System

다중 프로그램 일괄처리 시스템(2) 만약 주기억장치에 여러 개의 프로그램이 있는 경우, 하나의 프로그램이 입출력 작업을 기다리는 동안 CPU 는 다른 프로그램을 실행할 수 있다. multitasking (multiprogramming) 주기억장치 Monitor Program A Program B Program C Operating System

다중 프로그램 일괄처리 시스템(3) Operating System

단일 및 다중 프로그래밍 비교 (1) 예제: Operating System

단일 및 다중 프로그래밍 비교 (2) Operating System

단일 및 다중 프로그래밍 비교 (3) Operating System

다중 프로그래밍 요구 사항 Hardware support: Software support from the OS: I/O interrupts and (possibly) DMA Memory management Memory protection (data and programs) Software support from the OS: Scheduling (which program is to be run next) To manage resource contention Operating System

시분할 시스템(Time Sharing Systems)(1) 다중 프로그램 일괄처리 시스템은 사용자의 대화식 작업을 지원하지 않는다 긴 작업 반환 시간(Job Turnaround Time) 사용자의 반응 시간이 느리기 때문에 일반적으로 분당 2초 정도만이 실제 처리시간으로 이용한다 최적의 경우에 분당 30명의 사용자가 시스템을 공유할 수 있다 Operating System

시분할 시스템(Time Sharing Systems)(2) 시분할 시스템은 다수의 대화식 작업을 지원하기 위하여 다중 프로그래밍 방식을 확장한 시스템이다 다수의 사용자들이 프로세서 시간을 공유하도록 한다 Time Slice : 하나의 작업이 프로세서를 점유하는 시간 짧은 반응 시간(Respone Time) 다수의 사용자가 터미널에서 동시에 시스템을 사용할 수 있다(대화식 작업 수행) 파일 시스템 등이 보호되어야 한다 Operating System

시분할 시스템(Time Sharing Systems)(3) If Time Slice = 10 msec, Pgm A Pgm B Pgm C 10 ms 20ms 30 ms 40 ms 50 ms 60ms RUN 주기억장치 Program A (30 msec) Program B (20 msec) Program C (10 msec)  Operating System

Modern Operating Systems의 특징(1) 최근에 운영체제에 새로운 기능요소가 지원 되고 있다 새로운 하드웨어의 발전 multiprocessor machines high-speed networks faster processors and larger memory 새로운 소프트웨어 필요성 multimedia applications Internet and Web access Client/Server applications Operating System

Modern Operating Systems의 특징(2) Microkernel Architecture Multithreading Symmetric Multiprocessing Distributed Systems Embedded Systems Object-Oriented Design Operating System

Microkernel architecture 커널에서 가장 필수적인 기능만을 지원 primitive memory management (address space) Interprocess communication (IPC) basic scheduling 다른 OS 서비스는 사용자 모드 프로그램(servers) 으로 제공 device drivers, file system, virtual memory… More flexibility, extensibility, portability… 최근 운영체제는 microkernel 구조를 기반으로 하고 있다(예: Window-NT 등) Operating System

Multithreading 하나의 프로세스는 동시에 수행 가능한 thread 들의 집합이다 직렬적으로 수행할 필요가 없는 task로 이루어지는 응용 프로그램에 가장 유용하다 서버 프로그램: 웹서버 프로그램 등 하나의 프로세스를 구성하는 thread는 동일한 데이터와 자원을 공유한다 Operating System

Symmetric Multiprocessing (SMP) 다수의 프로세서를 가진 컴퓨터 각 프로세서는 동일한 기능을 가지며 주기억장치와 I/O 장치를 공유한다(symmetric) 운영체제는 프로세스/쓰레드를 프로세서간에 스케쥴링한다(real parallelism) Incremental growth just add another CPU! Robustness a single CPU failure does not halt the system, only the performance is reduced Operating System

Example of parallel execution on SMP Operating System

Distributed Systems 고유의 프로세서와 로컬 메모리를 가진 시스템이 다수 모여 구성된 컴퓨터 시스템 Loosely-coupled multiprocessor systems Clustered Systems 분산 운영체제의 특징: 자원 공유: 분산파일시스템 등 연산속도 향상: 부하분산(load balancing) 등 신뢰성(reliability): HA(High Availability) 등 Operating System

Embedded Systems 작고, 전자 책과 메모 패드와 같은 적은 기능을 수행하는 작은 규모의 컴퓨터 PDA, 이동전화기, 가전장치 등의 장치에 내장되어 장치를 제어하는 컴퓨터 실시간 특성을 가짐 크기, 메모리 및 전원 등에서 제약 조건을 가짐 임베디드 운영체제 사례: RTOS(Real-time Operating System)- pSos etc Window-CD, Embedded Window-XP Embedded Linux Operating System

Object-Oriented Design 가장 최근에 이루어진 운영체제 기술 혁신 객체 지향 설계 원리는 핵심 기능을 가진 작은 커널을 모듈러하게 확장할 수 있도록 지원 프로그래머가 시스템의 무결성을 헤치지 않으면서 자신이 원하는 대로 운영체제를 구성할 수 있다 분산 도구 및 완전환 형태의 분산운영체제의 개발을 용이하게 한다 Operating System

시스템 호출 (1) 시스템 호출(System Calls) 사용자 프로그램과 운영체제 간의 인터페이스 표준 라이브러리 함수를 통한 호출 어셈블리어 수준에서의 직접 호출 시스템 호출 사용 예: 파일 복사 프로그램 입력 파일 이름 및 출력 파일 이름에 대한 입출력 입력 파일 개방 / 출력 파일 생성 파일 읽기 / 파일 쓰기 파일 닫기 메시지 출력 프로그램 종료 Operating System

시스템 호출 (2) 사용자 프로그램 시스템 호출 운영체제 프로그래머 관점 Operating System

시스템 호출 수행 과정 There are 11 steps in making the system call read (fd, buffer, nbytes) Operating System

시스템 호출 종류 (1) 프로세스 제어(Process Control) 프로세스 생성 및 종료 프로세스 적재 및 실행 프로세스 속성 설정 및 획득 등 Operating System

시스템 호출 종류 (2) A stripped simple shell: while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt */ read_command (command, parameters) /* input from terminal */ if (fork() != 0) { /* fork off child process */ /* Parent code */ waitpid( -1, &status, 0); /* wait for child to exit */ } else { /* Child code */ execve (command, parameters, 0); /* execute command */ } Operating System

시스템 호출 종류 (3) 파일 조작(File Management) 파일 생성 및 삭제 파일 개방 및 닫기 파일 쓰기 및 읽기 파일 속성 설정 및 획득 Operating System

시스템 호출 종류 (4) 디렉토리 조작(Directory Management) 디렉토리 생성 및 삭제 디렉토리 링크 파일시스템 Mounting Operating System

시스템 호출 종류 (5) 기타 시스템 호출 장치 조작(Device Management) 장치 요구 및 해제 판독, 기록, 재배치 장치 속성 획득 및 설정 정보 유지 보수(Information Maintenance) 시간, 일자 정보 설정 시스템 자료 설정 등 통신(Communication) 통신 연결 생성 및 제거 자료 송수신 등 Operating System

시스템 호출 종류 (6) Operating System

시스템 호출 종류 (7) Some Win32 API calls Operating System

운영체제 구조(1) 시스템 프로그램 사용자 관점의 운영체제 프로그램 개발과 실행 환경 제공 시스템 관리 기능 제공 파일 조작 기능 제공 시스템 호출에 대한 사용자 인터페이스 제공 예: 컴파일러, 윈도우 탐색기, 제어판, 프린터 등 Operating System

운영체제 구조(2) Operating System

UNIX OS 구조 Operating System

Modern UNIX Kernel Operating System

Modern UNIX Systems System V Release 4 (SVR4) Solaris 9 4.4BSD Linux Operating System

Windows Architecture Modular structure for flexibility Executes on a variety of hardware platforms Supports application written for other operating system Operating System

Operating System

Operating System Organization Modified microkernel architecture Not a pure microkernel Many system functions outside of the microkernel run in kernel mode Any module can be removed, upgraded, or replaced without rewriting the entire system Operating System

Kernel-Mode Components Executive Contains base operating system services Memory management Process and thread management Security I/O Interprocess communication Kernel Consists of the most used components Operating System

Kernel-Mode Components Hardware abstraction layer (HAL) Isolates the operating system from platform-specific hardware differences Device drivers Translate user I/O function calls into specific hardware device I/O requests Windowing and graphics systems Implements the graphical user interface (GUI) Operating System

Windows Executive I/O manager Cache manager Object manager Plug and play manager Power manager Security reference monitor Virtual memory manager Process/thread manager Configuration manager Local procedure call (LPC) facility Operating System

User-Mode Processes Special system support processes Service processes Ex: logon process and the session manager Service processes Environment subsystems User applications Operating System

Client/Server Model Simplifies the Executive Improves reliability Possible to construct a variety of APIs Improves reliability Each service runs on a separate process with its own partition of memory Clients cannot not directly access hardware Provides a uniform means for applications to communicate via LPC Provides base for distributed computing Operating System

Threads and SMP Operating system routines can run on any available processor Different routines can execute simultaneously on different processors Multiple threads of execution within a single process may execute on different processors simultaneously Server processes may use multiple threads Share data and resources between process Operating System

Windows Objects Encapsulation Object class or instance Inheritance Object consists of one or more data items and one or more procedures Object class or instance Create specified instances of an object Inheritance Support to some extent in the Executive Polymorphism Operating System