Transcript 운영체제의 유형
정보통신실습 및 특강(5) [email protected] http://cherub.sungkyul.edu/~web 2009.04 1 목차 운영체제(Operating System)란 무엇인가? 운영체제의 유형 운영체제의 역사 부팅과정(booting) HDD구조 및 MBR 정보통신실습 및 특강(5) 2 운영체제(Operating System)란? 운영체제(Operating System)란? 사용자와 컴퓨터 사이에 인터페이스를 제공 컴퓨터 자원을 효율적으로 관리 (효율성) 컴퓨터 시스템을 편리하게 사용할 수 있게 함 (편의성) 운영체제의 구성요소 하드웨어(H/W) 어플리케이션 사용자(Users) 정보통신실습 및 특강(5) 3 운영체제(Operating System)란? 운영체제의 구성요소(계속) kernel(커널) 운영체제의 핵심부분 프로세스관리, 메모리관리, I/O 시스템 관리, 파일시스템관리 등 shell(쉘) 사용자와 운영체제의 내부 kernel 사이의 인터페이스 역할 (명령어 해석기) Users Applications Shell Kernel H/W 정보통신실습 및 특강(5) 4 운영체제(Operating System)란? 일괄처리시스템 (batch processing system) 유사한 작업들끼리 일정량 또는 일정시간 묶어서 처리 FORTRAN, COBOL, FORTRAN / FORTRAN, FORTRAN, COBOL 입력batch 입력 … 시스템 출력batch 입력 출력 … 출력 (batch processing) 상주모니터(resident monitor) 실행 대기 작업을 일정기간 모아 시스템 스스로 작업 순서를 정할 수 있도록 만든 자동작업 순서 방법 상 (Automatic job sequencing) 주 모 니 터 loader 실행대기작업 제어카드해석기 사용자영역 정보통신실습 및 특강(5) 5 작업제어카드 (Job control card) 운영체제의 유형 다중프로그래밍시스템(Multi programming system) CPU의 효율을 극대화 한번에 여러 프로그램을 메모리로 load 프로그램1 이 사용하지 않는 시간에, 프로그램2가 CPU를 사용 운영체제의 발전의 중심적인 역할 프로그램1 프로그램2 P1 P1 P1 P2 P2 다중프로그래밍시스템의 기억장치구성도 P2 시간 CPU유휴시간 OS 작업1 프로그램1 작업2 프로그램2 작업3 P1 P2 P1 P2 P1 P2 시간 정보통신실습 및 특강(5) 6 운영체제의 유형 시분할 시스템 (Time sharing system) 여러 사용자들에게 컴퓨터 자원을 시간을 분할하여 사용할 수 있게 함 각 사용자는 마치 자신만이 컴퓨터를 사용하고 있다고 착각하게 함. 컴퓨터를 대화식으로 사용하려는 시도에서 탄생 문제점 정보통신실습 및 특강(5) 운영체제 복잡(자원 제어에 대한 책임을 OS에게 전가) 주기억장치 및 보조기억장치의 관리 스케줄링 프로세스간 통신 입출력장치의 사용 제어 관리 등 7 운영체제의 유형 실시간 시스템(Real-Time system) 단말기의 요청을 즉시 처리하여 그 결과를 되돌려주는 시스템. 일반적으로 응답시간이 수 초 이내 응답시간 : 자료를 입력하여 결과가 출력되기까지의 시간 실시간 시스템의 종류 Hard real-time system soft real-time system 정보통신실습 및 특강(5) 작업(task)을 정해진 시간에 반드시 완료할 수 있도록 한 시스템 원자력발전소에서의 원자로 온도제어 미사일방어체제에서의 미사일 요격 작업을 정해진 시간을 넘기는 것을 어느 정도 허용하는 시스템 동영상 플레이어, 음악 재생기 8 운영체제의 유형 다중처리시스템(Multi-processing System) 여러 개의 처리기가 하나의 메모리를 공유하여 사용하는 시스템 다중처리기(mutiprocessor) - 2개 이상의 프로세서 조합 다중처리(mutiprocessing) - 다중처리기를 활용하여 병렬적으로 처리하는 것 일반적으로 하나의 운영체제가 모든 프로세서들을 제어 특징 속도향상 (프로세서를 여러 개 사용하여 여러 개의 작업을 동시에 수행) 높은 신뢰성 (처리기 중 일부에 문제가 발생하더라도 다른 처리기를 이용해 처리) 프로세서 프로세서 프로세서 기억장치 정보통신실습 및 특강(5) 9 프로세서 운영체제의 유형 분산 컴퓨팅(Distributed computing) 인터넷에 연결된 여러 컴퓨터들의 처리 능력을 이용하여 거대한 계산 문제를 해결하려는 분산처리 모델 유휴 개인용 컴퓨터의 프로세싱 자원을 활용 다양한 응용분야에서 프로젝트가 수행 중 (바이오 분야, 기상, 인공지능, 수학, 암호학 등) 정보통신실습 및 특강(5) 1997년에 RSA Data Security사가 Distributed.net 프로젝트 DES 64 비트 암호 해독(약 30만 명의 이용자가 참여) SETI@Home(Search for Extraterrestrial Intelligence)프로젝트 외계 지적생명체 탐사 2002년부터 코리아앳홈 프로젝트 가상의 대용량슈퍼컴퓨팅을 구현하는 것이 기본목표 (수십∼수백 만대 의 유휴 PC) 10 운영체제의 역사(Windows) 1981 CP/M 1982 1985 1987 PC-DOS1.0 1992 OS/2 1.0 MS-DOS1.0 1995 MS-DOS6.0 MS-DOS7.0 Windows 2.0 Windows 3.1 Windows 95 Win NT 3.1 1998 1999 MS-DOS7.1 Windows 98 2000 2001 2003 2007 Win NT 3.5 Win NT 4.0 2008 2010 MS-DOS8.0 Windows 98se Windows Me Windows XP Windows Vista Win 2000 정보통신실습 및 특강(5) 1996 OS/2 2.0 MS-DOS4.0 Windows 1.01 1993 Windows 서버2003 11 Windows 7.0 Windows 서버2008 운영체제의 역사(UNIX & Linux) 1960 1 1969 Multics 1970 1971 1975 PDP-11/20용 OS (UNIX) DEC PDP-7용 OS 개발 (Unics) 1977 Version 6 UNIX 1979 1980 1981 1982 1983 1984 Version 7 UNIX Version 8 UNIX SunOS1.0 2 UNIX를 C언어로 다시작성 3 1985 UNIX System III 4 SunOS1.1 UNIX System IV XENIX 5 1BSD UNIX System V R1 UNIX System V R2 SOC XENIX3.0 XENIX3.0 2BSD 2.8BSD SunOS2.0 2.9BSD 6 Mach 7 3BSD/4.0BSD 4.2BSD 4.1BSD 8 MINIX 9 HP-UX 1986 1987 1 Version 9 UNIX 2 SunOS3.0 3 UNIX System V R3 4 1988 SunOS3.5 IRIX 5 Mach2.0 7 4.3BSD 1990 1991 SunOS4.0 Solaris1 1992 1993 1994 1995 1997 Solaris2.0 UNIX System V R4(SVR4) IRIX2.0 IRIX4.0 2.101BSD Mach2.5 Solaris2.6 Unixware1 IRIX3.0 2.10BSD 6 1989 1998 1999 2000 2001 2002 2003 2004 2005 2006 Version 10 UNIX Unixware2.0 IRIX5.0 Solaris7 Unixware7 Solaris8 Solaris10 Open Unix8 R8.0 SCO Unixware7.13 IRIX6.0 IRIX6.5.30 2.11BSD Mach2.6 Mach3 Mach4uk02 OSF/1 Mach4uk22 Mach4 OSF/1 3 4.4BSD FreeBSD1.0 NetBSD OpenBSD MINIX1.0 8 MINIX1.5 9 HP-UX1.0 정보통신실습 및 특강(5) HP-UX3.0 HP-UX7.0 MINIX2.0 Linux0.99.11 Linux0.01 HP-UX9.0 Linux1.0 Linux2.0 HP-UX10 12 MINIX3.0 Linux2.4 HP-UX11 HP-UX11i Linux2.4 Linux2.6.26 HP-UX11iv2 운영체제의 역사(UNIX & Linux) 리누스 토발즈(Linus Benedict Torvalds) - 앤드류 타넨바움 (Andrew S. Tanenbaum)라는 교수가 운영체제 디자인을 가르치기 위해 만든 교육용 유닉스인 미닉스(MINIX)에서 아이디어를 얻어, - 독자적으로 리눅스를 개발 (탄넨바움은 미닉스를 다른 사람이 함부로 수정하지 못하 도록 제한) - 뉴스그룹(comp.so.minix)을 통해 리눅스를 개발하고 있음을 알림 ▪ 1991년 9월 : - 리눅스의 등장 : 0.01버전 개발 (미공개) ▪ 1991년 10월 : - 0.02버전 : 뉴스그룹에 첫 공식적인 발표 - 10명이 다운로드, 그 중 5명이 버그를 수정 및 개선하여 보내옴. 1992년 3월 : - 0.95 버전 (GUI와 Intel x86 지원) - 리처드 스톨만과 FSF는 리눅스를 GNU 커널로 채택 - 리눅스는 GNU C 컴파일러(gcc)로 컴파일한 응용프로그램 증가 ▪ 1994년 : - 1.0 버전 (네트워크 기능 추가) - 밥 영과 마크유잉의 레드헷사 설립 정보통신실습 및 특강(5) 13 부팅과정(booting) 1. BIOS 코드 로드 ROM-BIOS 2. 부트로더 메모리(RAM) 3. 부트코드 로드 4. 커널 이미지 로드 M B R 정보통신실습 및 특강(5) 부 트 섹 터 커 널 이 미 지 Windows 14 부 트 섹 터 리 눅 스 부팅과정(booting) Power ON ROM-BIOS 프로그램 실행 ▪ BIOS (Basic Input/Output System) : 메모리의 특정 번지로 자동 로드 되어 실행 됨. ▪ POST(Power On Self Test) 수행 - 서버에 장착된 H/W가 인식됨. (시리얼장치, 패러럴장치, PS/2 마우스장치, 사운드장치, IDE장치, 플로피드라이브, SCSI장치, 이더넷 카드 등 .) - H/W의 물리적인 손상체크와 초기화가 병행됨. (CMOS내용 검사, CPU, Memory, 그래픽카드, 키보드, 마우스, 기타 각종 H/W의 이상유무진단, H/W초기화 수행) ▪ 부팅매체(DISK, CD-ROM, Floppy 등) 검색 ▪ MBR(Master Boot Record)를 읽어, ▪ 부트로더를 로드시킴 부트로더 실행 ▪ 부팅메뉴 선택 ▪ kernel 이미지 로드(파티션테이블 참조하여) OS 로드 및 실행 정보통신실습 및 특강(5) 15 HDD구조 정보통신실습 및 특강(5) 16 HDD구조 정보통신실습 및 특강(5) 17 HDD구조 파티션 물리적인 HDD를 여러 개의 논리적인 영역으로 나눈 것. 하나의 HDD를 마치 여러 개의 HDD가 있는 것처럼 나누어 사용하는 것 파티션의 종류 주 파티션(primary partition) 정보통신실습 및 특강(5) 기본적인 파티션 부팅 가능한 파티션 주 파티션이 여러 개인 경우, 그 중 1개만 부팅이 가능한 파티션이 됨. 최대 4개 까지 가능 18 HDD구조 확장 파티션 (extended Partition) 직접 사용할 수 있는 파티션이 아님 (사용 가능한 논리 파티션을 담는 그릇역할) 한 디스크에 1개만 만들 수 있음 주 파티션 + 확장 파티션 = 최대 4개(주3+확1) swap파티션 가상메모리(Virtual Memory) 정보통신실습 및 특강(5) 하드디스크의 일부를 마치 메모리인 것처럼 사용. 19 MBR Data Structure MBR(Master Boot Record) 하드디스크의 첫번째 섹터(512Bytes) 부트코드 + 파트션테이블 + signature ■ Boot Code ◦ 446 bytes ( 0 ~ 445 : 0x0 ~ 0x1BD ) ■ Partition Table Entry ◦ ◦ ◦ ◦ 첫 두 세 네 번째 번째 번째 번째 partition partition partition partition - 16bytes 16bytes 16bytes 16bytes (446 (462 (478 (494 ~ ~ ~ ~ ■ Signature value ◦ 2bytes ( 510 ~ 511 : 1FE ~ 1FF ) ◦ 0xAA0x55 정보통신실습 및 특강(5) 20 461 477 493 509 : : : : 1BE ~ 1CD) 1CE ~ 1DD) 1DE ~ 1ED) 1EE ~ 1FD) MBR Data Structure 파티션테이블 80 01 01 00 06 7F 3F FD 3F 00 00 00 C1 40 1F 00 ① Bootable Flag (1Byte) ◦ 부팅 파티션 식별 정보 (어느 파티션으로 부팅할 것인지를 표시함) ◦ 0x80 : 부팅 파티션(active partition) ◦ 0x00 : 부팅에 사용되지 않는 파티션 ◦ 4개의 파티션 중 1개의 파티션에만 0x80을 사용할 수 있다. ② Starting CHS Address (3 bytes) ③ Partition Type(1 byte) : 파일 시스템 타입을 식별(0x06 ) ④ Ending CHS Address (3 bytes) ⑤ Starting LBA Address (starting sector) ⑥ Size in Sectors (파티션의 섹터의 개수: 4 bytes) ■ Signature value (2bytes ( 510 ~ 511 : 1FE ~ 1FF )) : 0xAA0x55 정보통신실습 및 특강(5) 21