운영체제 (Operating System)

Slides:



Advertisements
Similar presentations
1/29 Chapter 3: 시스템 소프트웨어 인터페이스 인간이 실질적으로 조작하는 기계의 부분 좋은 인터페이스 : 직관적 ( 사전지식, 경험으로 알 수 있음 ) 이어서 누구나 즉각적 사용 가능 사용자 ( 자연어 ) ↔ 응용 S/W↔ 시스템 S/W↔H/W( 기계어 )
Advertisements

Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved. 제7강제7강.
운영체제의 역사 작성 / 발표 오두환.  OS( 운영체제 ) 의 정의 OS(operating system) 란 ?? 머리 - > 계산 = Cpu 얼굴 + 몸매 = 그래픽카드 눈 = 모니터 머리 -> 기억 = HDD/SDD 입 = 스피커 귀 = 마이크 ….. 하드웨어하드웨어.
이재우.  운영체제 정의 ◦ OS(Operation System) ◦ 사용자와 컴퓨터 시스템 사이에 위치하여 컴퓨터 시스템의 전반 적인 동작을 제어하고 조정하며 ◦ 사용자에게 편리성을 제공하여 한정된 시스템 자원을 효율적으 로 사용할 수 있도록 관리하는.
Unix/Linux 프로그래밍 인천대학교 컴퓨터공학과 성 미 영 ( 成 美 暎 )
Dept. Computer Engineering DBLAB 정보처리개론 담당 교수 : 김정석 2009 년도 1 학기.
컴퓨터의 기본 개념. 목 차목 차 컴퓨터의 정의 컴퓨터의 세대별 분류 컴퓨터의 분류 컴퓨터의 종류 컴퓨터의 구성 컴퓨터의 동작원리 컴퓨터의 외양 컴퓨터의 내부 구조 단위.
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
Linux Seminar #1 리눅스 이해하기.
마이크로 컨트롤러 Microcontroller.
Chapter 2 Operating System Overview
PC와 인터넷 정강수 컴퓨터 구조와 웹의 이해 PC와 인터넷 정강수
소프트웨어와 운영체제.
1.1 병렬처리의 한계와 가능성 1.2 병렬처리의 단위 1.3 병렬컴퓨터의 분류 1.4 병렬컴퓨터의 성능 척도
제 2장 컴퓨터 구조.
(강의 홈페이지: 강좌 개요 서울대학교 통계학과 2010년 2학기 컴퓨터의 개념 및 실습 (강의 홈페이지:
컴퓨터란? (I) nlip.pcu.ac.kr.
정보통신실습 및 특강(5)
1장 유닉스 소개.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
Operating Systems Overview
운영체제 레프토 (4장 CPU 스케줄링) b반 박상수.
Uniprocessor Scheduling
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
운영체제 (Operating Systems)
프로세스 관리.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
컴퓨터 구조학 정보보호학과.
소개: Unix란 무엇인가? 숙명여대 창병모 2009/09.
임베디드 운영체제 (리눅스 중심) Lecture #2.
임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템
임베디드시스템 2013년도 가을학기.
운영체제 (Operating System)
2.2 CPU 스케줄링의 목적과 유형 스케줄링의 목적
Lecture #10 제8장 병렬컴퓨터 구조.
제8장 병렬컴퓨터 구조.
14장. 병렬 프로세서 다루는 내용 병렬 프로세서로의 개념 병렬 처리와 병렬 컴퓨터 분류 배열 프로세서와 다중 프로세서의 개념
운영체제 (Operating System) 강좌 소개
UNIX Unbounded A Beginning Approach
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
디지털 녹음장비 제 안 서 휴 코 산 업.
운영체제 (OS: Operating System)
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Multiprocessor and Real-time Scheduling
Multiprocessor and Real-time Scheduling
정보(information) 데이터(data) 어떤 사물에 대한 소식이나 자료 가공된 데이터
2 운영체제 소개.
Operating System System Program OS의 목적 OS의 종류 Application Program과 구별
운영체제 (Operating Systems)
운영체제 이나현.
Xen and the Art of Virtualization
제3,4,5장 프로세스, 스레드 관리 CPU 스케줄링.
Chapter 10. 파일 시스템 인터페이스(File System Interface)
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
Chapter 3: 시스템 소프트웨어 힘 뒤에 있는 힘.
운영체제 (Operating System) 강좌 소개
UNIX Internet Server의 대부분을 차지 대표적인 공급업체
제5장 CPU스케줄링(CPU Scheduling)
제10,11,12장 파일시스템 디스크 스케줄링.
운영체제(Operating System)
제16,17,18장 분산 시스템.
제 10장 운영체제.
제7강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
운영체제 발표자료 B반 최민웅.
제1장 정리 컴퓨터소프트웨어과 2-A반 주세호.
NFS (Network File system)
제02장 컴퓨터 개요.
1장 운영체제의 소개 컴퓨터소프트웨어 2-B 한아름.
Lecture #7 CPU Scheduling.
Presentation transcript:

운영체제 (Operating System) Operating Systems are an ( ??? ) part of any computer system !!! 인천대학교 컴퓨터공학과 성 미 영 mailto:mysung@incheon.ac.kr http://marvel.incheon.ac.kr/~mysung 2000 운영체제

교재 및 참고서적 교재: Avi Silberschatz, Peter Galvin, Greg Gagne Applied Operating System Concepts Wiley, 2000. 참고서적 김영찬 역, Silberschatz, Galvin 공저, 한국어판, Operating System Concepts, Fifth Edition, 홍릉과학출판사, 1998. Siberschatz, Galvin, Operation System Concepts, Fifth Edition, Addison-Wesley, 1998. Alessandro Rubini, Linux Device Drivers, O'Reilly, 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. Matt Welsh, Lar Kaufman, Running Linux, 2nd Edition, O'Reilly, 1996. Mark F. Komarinski, Cary Collett, Linux Administration Handbook, Prentice Hall, 1998. Fred Butzen, Christopher Hilton, Linux Network, M&T Books, 1998. Remy Card, Eric Dumas, Frank Mevel, the Linux Kernel book, Wiley, 1998. 2000 운영체제

수업 개요 교과목 개요 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 사용자가 보다 편리하게 컴퓨터를 이용할 수 있도록 도와주는 프로그램이다. 본 교과목에서는 운영체제의 기본 개념에 대하여 전반적으로 이해하며 실제 시스템을 분석해 봄으로써 새로운 운영체제를 설계하는 기초 능력을 배양한다. 수업 목표 프로세스 및 병행 프로세스 관리, 기억장치 관리, 보호와 보안 등의 운영체제 기본 개념을 이해한다. 분산 시스템을 위한 지원해야 할 프로세스간의 동기 및 통신 메커니즘에 대해 이해한다. Linux 등의 실제 시스템을 분석하여 운영체제 설계에 응용할 수 있게 한다. 수업방식: 강의 80%, 실습 20%, 과제가 매우 많음 평가방법: 중간 30%, 기말 30%, 과제 20%, 출석 및 수업기여도 20%, Bonus: http://www.hackerslab.com 2000 운영체제

수업 내용 개요 (Overview): 1 장~3장 프로세스 관리 (Process management): 4장~ 8장 메모리와 저장장치 관리(Memory and storage management): 9장~13장 분산 시스템 (Distributed systems): 14장~17장 보호와 보안(Protection and security): 18~19장 Linux 사례 연구: (Linux case study): 21장 2000 운영체제

1 장 서론 운영체제란 무엇인가? (What is an operating system?) 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 운영체제

운영체제란 무엇인가? OS란 사용자의 응용 소프트웨어와 하드웨어와의 interface 역할을 하는 프로그램으로서 컴퓨터 시스템을 효율적으로 사용하는 환경제공 하드웨어를 제어하는 소프트웨어 (S/W that controls H/W) S/W  firmware: ROM, PROM 안에 내장된 micro code program (예) 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 운영체제

컴퓨터 시스템 기본 구성도 2000 운영체제

단순 일괄처리 시스템 (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 운영체제

단순 일괄처리 시스템 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 운영체제

단순 일괄처리 시스템의 주기억장치 구성도 상주 모니터 Loader Job sequencing Control card interpreter 2000 운영체제

다중 (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 할당 주기억 장치 안의 준비 상태인 job중에서 실행할 job을 선택하는 작업 2000 운영체제

다중 일괄처리 시스템 주기억장치 구성도 여러 개의 프로그램을 동시에 주기억장치에 넣고 CPU를 분할 사용 2000 운영체제

시분할 시스템(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 2000 운영체제

개인용 컴퓨터 시스템(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 운영체제

운영체제 개념과 특징의 변천 2000 운영체제

병렬 시스템 (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 운영체제

대칭적 다중처리 구조 2000 운영체제

병렬 시스템 구조 Star-connected network Completely-connected network Linear array network Ring network 2000 운영체제

Mesh Network 2-dimensional wraparound mesh 2-dimensional mesh 2000 운영체제

Complete binary tree with Tree Network Complete binary tree Complete binary tree with message routing Fat tree network 2000 운영체제

Hypercube Network 2000 운영체제

실시간 시스템 (Real-Time System) ~ 엄격한 시간제약 하에서 수행되는 시스템 특정응용의 제어 장치 sensor  computer  control (예) automobile-engine fuel-injection, weapon 종류 Hard real-time system Soft 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 운영체제

실시간 시스템 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 Algorithm Rate Monotonic Algorithm Disk scheduling (아래 참고자료 P282) EDF disk scheduling SCAN-EDF 참고자료 : Multimedia: Computing Communication & Applications, Steinmetz and Nahrstedt, Prentice-Hall, 1995. 2000 운영체제

Rate Monotonic vs. EDF 2000 운영체제

EDF 디스크 스케줄링 2000 운영체제

분산 시스템 (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 운영체제

NFS & DFS 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 /myshare (multi와 media에게만 rw로 허용) share -F nfs -o ro /usr/FTP/pub 클라이언트 호스트 SunOS 등 BSD 계열: /etc/fstab (예) boris:/export/exec/sun4 /usr nfs r0 0 0 Solaris: /etc/vfstab에 mount 정보 기록하고 재부팅 (예) multi:/usr/FTP/pub multi:/usr/FRP/pub /pub nfs 1 yes - 또는 셸 명령으로 mount 실행 (예) % mount -F nfs multi:/usr/FTP/pub /mnt Llinux: $ mount -t nfs multi:/usr/FTP/pub /mnt dfstab 편집, share, vfstab 편집, mount, umount는 root만 2000 운영체제

Hard 한 걸 Hard 하게 하면 Hard 해진다. 2000 운영체제