Sie sind auf Seite 1von 77

운영체제 (Operating System)

Operating Systems are an


( _________ )
http://www.fungameboom.kr/play-1808

part of any computer system !!!

인천대학교 컴퓨터공학과
성미영
mailto:mysung@incheon.ac.kr
http://marvel.incheon.ac.kr/~mysung

운영체제 1.1 인천대학교 컴퓨터공학과 성미영


수업 개요

• 교과목 개요
– 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 사용자가
보다 편리하게 컴퓨터를 이용할 수 있도록 도와주는 프로그램이다 .
본 교과목에서는 운영체제의 기본 개념에 대하여 전반적으로
이해하며 실제 시스템을 분석해 봄으로써 새로운 운영체제 및 응용
시스템을 설계하는 기초 능력을 배양한다 .

• 수업 목표
– 프로세스 및 병행 프로세스 관리 , 기억장치 관리 , 보호와 보안 등의
운영체제 기본 개념을 이해한다 .
– 분산 시스템을 위해 지원해야 할 프로세스간의 동기 및 통신
메커니즘에 대해 이해한다 .
– Unix/Linux 등의 실제 시스템을 분석하여 운영체제 및 응용 시스템
설계에 응용할 수 있게 한다 .

• 수업방식 : 강의 70%, 실습 30%

• 평가방법 : 중간 30%, 기말 30%, 과제 20%, 출석 및 수업 기여도 20%,

운영체제 1.2 인천대학교 컴퓨터공학과 성미영


교재
• 교재
– ( 한국어판 ) Operating System Concepts, 7th edition, 조유근 , 고건 , 김영찬 공역 ,
Silberschatz, Galvin, Gagne 원저 , 홍릉과학출판사 , 2008.
– (8th ed.) Operation System Concepts, 8th edition, Abraham Silberschatz, Peter Baer
Galvin, Greg Gagne, John Wiley & Sons, Inc., ISBN 0-470-12872-0, 2009.
 http://codex.cs.yale.edu/avi/os-book/
– (8th ed.) Operating System Concepts with Java, 8th Edition , Abraham Silberschatz,
Peter Baer Galvin, Greg Gagne, John Wiley & Sons, Inc., ISBN 978-0-470-50949-4,
2010.
• 교재 series
– (7th ed.) Operating System Concepts, 7th edition, Abraham Silberschatz, Peter Baer
Galvin, Greg Gagne, Wiley, 2004.
– (6th ed.) Operating System Concepts, 6th edition, Abraham Silberschatz, Peter Baer
Galvin, Greg Gagne, Wiley, 2002.
– (5th ed.) Operating System Concepts, 5th edition, Abraham Siberschatz, Peter Baer
Galvin, Addison-Wesley, 1997.
– (4th ed.) Operating System Concepts, 4th edition, Abraham Siberschatz, Peter Baer
Galvin, Addison-Wesley, 1993.
– (3rd ed.) Operating System Concepts, 3rd edition, Abraham Silberschatz,  James L.
Peterson, Peter B. Galvin, Addison-Wesley, 1991.
– (2nd ed.) Operating System Concepts, 2nd edition, James L. Peterson and Abraham
Silberschatz, Addison-Wesley, 1985.
– (1st ed.) Operating System Concepts, 1st edition, James L. Peterson and Abraham
Silberschatz, Addison-Wesley, 1983.

운영체제 1.3 인천대학교 컴퓨터공학과 성미영


참고서적
• UNIX for Programmers and Users ( 프로그래머와 사용자를 위한 UNIX 완성 ), Glass and
Ables 저 , 조경산 역 , 이한출판사 , 2001.
– Graham Glass and King Ables, UNIX for Programmers and Users, 2nd Ed., Prentice Hall
PTR, 1999.
• 리눅스 시스템 & 커널 기초 : 커널 분석에서 코드 수정까지 , 김성영 , 오병우 , 이이섭 ,
장춘서 , 조현규 공저 , 한빛미디어 , 2007.
• Understanding the Linux Kernel, 3 rd Edition, Daniel P. Bovet, Marco Cesati, O’reilly,
2005.
• 기타 유닉스 / 리눅스 참고서적
– Unix Network Programming, 3rd Edition, W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, Addison-Wesley, 2004.
 ( 한국어 판 ) Unix Network Programming, Stevens 저 , 김치하 , 이재용 역 , 교보문고 , 2005.
– Unix System Programming, 2nd Edition, K. Havilland, D. Gray, B. Salama, Addison-Wesley, 1998(99)
 ( 한국어판 ) Unix 시스템 프로그래밍 , 2nd Edition, Keith Haviland, Dina Gray, Ben Salama 저 , 조유근 역 ,
홍릉과학출판사 , 1999
– The X Window System Programming and Application with Xt, 2nd Edition ., Douglas A. Young, Prentice Hall PTR, 1994
 ( 한국어판 ) The X Window System Programming and Application with Xt 제 2 판 , Young 저 , 박승규 외 4 인 역 ,
대영사 , 1996
– Unix System Administration Handbook, Third Edition, Evi Nemeth, Garth Snyder, Scott Seebass, Trent R. Hein, Prentice
Hall PTR, 2000.
 ( 한국어판 ), Unix System administration Handbook, 2nd Edition, Nemeth, Snyder, Seebass, Hein 저 , 최재영 ,
김명호 , 김영배 역 , 홍릉과학출판사 , 1998.
– Essential System Administration, Third Edition , AEleen Frisch, O'Reilly, 2002.
 시스템 관리의 핵심 , 2nd Edition, AEleen Frusch 저 , 홍상욱 역 , 한빛미디어 , 2003.
– The Design of the Unix Operating System, Maurice J. Bach, Prentice Hall International, Inc., 1986
 ( 번역서 ) Unix 의 내부구조 , 조유근 역편 , Bach 원저 , 홍릉과학출판사 , 1997.
– Linux Kernel Programming, Third Edition, M. Beck, H. Bohme, M. Dziadzka, U. Kunitz, R. Magnus, C. Schroter, D.
Verworner, Addison-Wesley 2002.
– Linux Kernel Development, 2nd Edition, Robert Love, Novell Press, 2005.
 ( 번역서 ) 임베디드 개발자를 위한 리눅스 커널 심층 분석 , 이상근 역 , Robert Love 원저 , 홍릉과학출판사 , 2004.
– Linux Administration Handbook, Mark F. Komarinski, Cary Collett, Prentice Hall, 1998.
운영체제 1.4 인천대학교 컴퓨터공학과 성미영
수업 내용 (7th edition)
Chapter 1 서론 (Introduction)
Part 1 개관 (Overview)
Chapter 2 운영체제 구조 (Operating-System Structure)

Chapter 3 프로세스 (Process)

Chapter 4 스레드 (Thread)

Part 2 프로세스 관리 (Process Management) Chapter 5 CPU 스케줄링 (CPU Scheduling)

Chapter 6 프로세스 동기화 (Process Synchronization)

Chapter 7 교착 상태 (Deadlock)

Chapter 8 주 메모리 (main Memory)

Chapter 9 가상 메모리 (Virtual Memory)


Part 3 메모리 관리 (Memory Management)
Chapter 10 파일 시스템 인터페이스 (File-System Interface)

Chapter 11 파일 시스템 구현 (File-System Implementation)

저장 장치 관리 (Storage Chapter 12 대용량 저장 장치 구조 (Mass-Storage Structure)


Part 4
Management) Chapter 13 입 / 출력 시스템 (I/O System)

Chapter 14 보호 (Protection)
Part 5 보호와 보안 (Protection and Security)
Chapter 15 보안 (Security)

Chapter 16 분산 시스템 구조 (Distributed System Structure)

Part 6 분산 시스템 (Distributed Systems) Chapter 17 분산 파일 시스템 (Distributed File System)

Chapter 18 분산 조정 (Distributed Coordination)

Chapter 19 실시간 시스템 (Real-Time System)


Part 7 전용시스템 (Special-Purpose System)
Chapter 20 멀티미디어 시스템 (Multimedia System)

Chapter 21 Linux 시스템 (Linux System)

Part 8 사례 연구 (Case studies) Chapter 22 윈도우 XP

Chapter 23 영향력 있는 운영체제들 (influential Operating Systems)


운영체제 1.5 인천대학교 컴퓨터공학과 성미영
Chapter 1: 서론 (Introduction)

1. 운영체제가 할 일 (What Operating Systems Do)


2. 컴퓨터 시스템 구성 (Computer-System Organization)
3. 컴퓨터 시스템 구조 (Computer-System Architecture)
4. 운영체제 구조 (Operating-System Structure)
5. 운영체제 연산 (Operating-System Operations)
6. 프로세스 관리 (Process Management)
7. 메모리 관리 (Memory Management)
8. 저장장치 관리 (Storage Management)
9. 보호와 보안 (Protection and Security)
10. 분산 시스템 (Distributed Systems)
11. 전용 시스템 (Special-Purpose Systems)
12. 계산 환경 (Computing Environments)
13. 오픈 소스 운영체제 (Open-Source Operating Systems)

1.6 인천대학교 컴퓨터공학과 성미영


운영체제가 할 일

• OS 란
– 사용자의 응용 소프트웨어와 하드웨어와의 interface 역할을 하는
프로그램으로서 컴퓨터 시스템을 효율적으로 사용하는 환경제공
– 하드웨어를 제어하는 소프트웨어 (S/W that controls H/W)
 S/W 또는 firmware (ROM, PROM, EEPROM, flash memory
안에 내장된 micro code program) 형태
 내장형 OS(Embedded OS), SoC(System-on-Chip)
– ( 예 ) MS-DOS, OS/2, Windows, Windows/NT, Windows 2003,
Windows XP, Windows Vista, Multics, Unix, Linux, Solaris 10, Mach,
OS/MVS(Multiple Virtual Storage, IBM), VM/CMS (Virtual
Machine / Conversational Monitoring System IBM),
OpenVMS(Virtual Memory [operating] System on VAX and Alpha
by DEC, Compaq bought DEC, HP bought Compaq,), Mac OS, ...

운영체제 1.7 인천대학교 컴퓨터공학과 성미영


운영체제가 할 일

• OS 의 관점
– 사용자 관점 : 서비스 제공자 (service provider)
– 시스템 관점 : 자원 할당자 / 관리자 (resource allocator/manager)
• OS 의 정의
– 제어 프로그램 (control program): 컴퓨터의 부적절한 사용을
방지하기 위해 사용자 프로그램의 수행을 제어
– 일반적인 정의 = 커널 (kernel): 항상 실행되는 프로그램
• OS 의 주 목적
– 컴퓨터 시스템을 편리하게 이용
– 컴퓨터 하드웨어를 효율적으로 활용
• 운영체제는 컴퓨터 시스템에서 가장 ? ? ? 부분

Kilo = 210 = 1,024


Mega = 220 = 1,048,567
Giga = 230 = 1,073,741,824
Tera = 240 = 1,099,511,627,776
Peta = 250 = 1,125,899,906,842,624

운영체제 1.8 인천대학교 컴퓨터공학과 성미영


운영체제 환경
• Windows systems
– Win32 API (application programming interface)
– Example programs tested on
 Windows 2000, Windows XP

• POSIX (Portable Operating System Interface)


– A set of standards implemented primarily for UNIX-based operating systems
– POSIX-compliant systems
 UNIX
 LINUX
 Mac OS X
– POSIX1.b: real-time extensions
– POSIX1.c: a thread library (pthread)
– Example programs tested on
 Debian Linux 2.4 and 2.6 systems
 MAC OS X
 Solaris 9 using gcc 3.3

• Java
– Run on any machine supporting JVM (Java virtual machine)
– Java programs tested using Java 1.4 JVM

운영체제 1.9 인천대학교 컴퓨터공학과 성미영


컴퓨터 시스템 구성 요소

• 하드웨어 – 기본 계산용 자원을 제공


– CPU, memory, I/O devices
• 운영체제
– 다양한 응용 프로그램과 사용자간의 하드웨어 사용을
제어하고 조정

• 응용 프로그램 – 사용자의 계산 문제를 해결하기 위해 컴퓨터


시스템의 자원을 어떻게 사용하는지를 정의
– Word processors, compilers, web browsers, database
systems, video games

• 사용자
– People, machines, other computers

운영체제 1.10 인천대학교 컴퓨터공학과 성미영


컴퓨터 시스템 구성도

운영체제 1.11 인천대학교 컴퓨터공학과 성미영


현대의 컴퓨터 시스템

• 컴퓨터 - 시스템 연산 (computer-System operation)


– 공유 메모리 접근을 지원하는 공통 버스 (common bus) 를 통해 연결된 하나
이상의 CPU 와 장치 제어기 (device controllers) 들로 구성됨
– CPU 와 장치 제어기들은 메모리 사이클을 얻기 위해 경쟁하면서 병행 수행
(concurrent execution) 될 수 있음

운영체제 1.12 인천대학교 컴퓨터공학과 성미영


컴퓨터 시스템 연산

• Bootstrap program( 부트스트랩 : 편상화의 손잡이 가죽


): firmware
– 초기화
– load the OS
– OS 시작 (init process: wait for event)
– ( 예 ) GRUB(GRand Unified Bootloader),
LILO (LInux LOader)

• Bootstrap 완료 후 event 기다림

• Event (interrupt)
– H/W generated interrupt (I/O 완료 event) ->
signal to the CPU
– S/W generated interrupt (trap) -> system call
(monitor call)

• OS 는 interrupt-driven 이다

운영체제 1.13 인천대학교 컴퓨터공학과 성미영


리눅스 시스템 부팅 과정
•ROM-BIOS 실행
• 메인보드의 ROM-BIOS 가 실행
• POST(power-on self test)
• 장치들을 초기화하고 부팅이 가능한 장치 탐색

• 메모리에 부트 프로그램 적재
• MBR(Master Boot Record) 에서 부트 프로그램 ( 부트로
더 ) 을 읽어들여 메모리로 적재
• 부트로더로 제어권을 넘겨줌
• 부트로더 : LILO, GRUB, ppcboot, uboot
• GRUB: /boot/grub

•커널 이미지 로딩 및 수행
– GRUB 으로 해당 커널 이미지를 로딩
– 압축 이미지 해제
– 커널로 제어권이 넘어옴
– 커널이 부팅 시 관련 코드 (Fedora 2.6.29.4)
 arch/x86/boot/header.S (bootsect_start)
 arch/x86/boot/compressed/head_32.S (startup_32)
 arch/x86/boot/compressed/misc.c
(decompress_kernel() )
 arch/x86/kernel/head_32.S  (startup_32)
 init/main.c  (start_kernel() )

운영체제 1.14 인천대학교 컴퓨터공학과 성미영


리눅스 시스템 부팅 과정

• start_kernel() 함수
– init/main.c
– 실질적인 리눅스 커널의 엔트리 포인트
– 리눅스 커널의 거의 모든 초기화를 처리하는 방대한 함수
– init 프로세스를 생성하는 init_post() 함수를 호출

• init 프로세스 ( 스레드 ) 의 생성


– init/main.c 내의 init_post() 함수
 start_kernel( ) 함수에서 아직 처리되지 않은 나머지 부분들 초기화한 후
다음 루트 파일 시스템을 마운트
 초기 콘솔을 열고 루트 파일시스템에서 init 파일 (/sbin/init) 을 실행시킴
 /sbin/init
– 최초의 사용자 레벨의 프로그램
 만약 init 을 찾지 못하면 커널은 부팅 시 패닉 (panic)
 dup 시스템 콜
– stdin( 표준입력 ) 의 파일 디스크립터를 비어 있는 다음 파일 디스크립터에 복사하고 ,
파일 디스크립터 1, 2 를 표준 출력과 표준 에러에 차례대로 할당

운영체제 1.15 인천대학교 컴퓨터공학과 성미영


리눅스 시스템 부팅 과정

start_kernel() 함수의 수행 흐름
운영체제 1.16 인천대학교 컴퓨터공학과 성미영
저장장치 구조 (Storage Structure)

• 기억장치 연산
– Load : main memory-> CPU 의 register
– Store : CPU -> memory
• Von Neumann 구조 (stored program) 의 명령 실행 사이클
– fetch : 명령 -> instruction register
– decode
– execute: 실행 후 결과를 register 에 저장
• Main memory : direct-access storage device
– ① too small
– ② volatile
• Secondary storage
– ① extremely large
– ② permanent
– Hard disk
• Tertiary storage
– ① slower and lower in cost than secondary storate
– ② Backups of disk data
– CD, DVD

운영체제 1.17 인천대학교 컴퓨터공학과 성미영


저장장치 구조
• 주기억장치와의 I/O
– 일반적
 device controller 의 register 에 보관된 데이터를 memory 로 전송
– 특별한 경우 memory mapped I/O
 memory 의 한 주소는 장치의 한 위치로 mapping
 ( 예 ) video controller
– main memory 접근은 여러 기억장치 cycle 이 필요
 접근동안 CPU 기다림
 접근 시간
– register 접근은 1 마이크로 사이클
– memory 접근은 여러 마이크로 사이클 필요
 cache (a memory buffer)

• 자기디스크 (Magnetic Disks)


– moving head disk
 전송률 (transfer rate)
 위치 시간 (positioning time) = 입의 접근 시간 (random access time)
= 탐색시간 (seek time) + 회전 지연 시간 (rotational latency time)
– floppy disk
• 자기테이프 (Magnetic Tapes)

운영체제 1.18 인천대학교 컴퓨터공학과 성미영


이동 헤드 (moving-head) 디스크 메커니즘

운영체제 1.19 인천대학교 컴퓨터공학과 성미영


저장장치 계층 (Storage-Device Hierarchy)
Speed
Cost volatile
Volatility
volatile

volatile

non-volatile sold state disk: non-volatile flash memory

non-volatile hard disk

non-volatile

non-volatile

운영체제 1.20 인천대학교 컴퓨터공학과 성미영


입출력 구조 (I/O Structure)

• Device controller ( 장치 제어기 )


– BUS 에 연결
– 종류별 1 개가 일반적
– SCSI (Small Computer Systems Interface controller)
 여러 종류의 장치 부착 가능

• 입출력 방식
– Interrupt 기반 전송
– DMA 기반 전송
• trap : software interrupt

운영체제 1.21 인천대학교 컴퓨터공학과 성미영


I/O Interrupts 기반 구조
• I/O 시작
– CPU 가 device controller 의 register 들을 set
– device controller 는 register 내용 검사하여 동작 개시
• I/O 끝
– device controller 가 CPU 에 interrupt
• 종류
– 동기적 (synchronous) I/O
 user program 이 I/O 완료를 기다림
 interrupt 한 장치 쉽게 인식
– 비동기적 (asynchronous) I/O
 I/O 완료를 기다리지 않고 user program 으로
 I/O 완료를 기다리려면 wait 명령 또는 wait loop 으로 다음
interrupt 까지 기다리게 할 수 있음
 simultaneous I/O 가능

• 동시에 many I/O requests 의 처리 위해


– device-status table( 장치 상태 테이블 ) 필요 ( 그림 2.4)
 type, address, state
 list or chain(=linked list) 형태로 request 등록 (request list)
– I/O interrupt -> OS 가 device 알아냄 -> I/O device table 변경
운영체제 1.22 인천대학교 컴퓨터공학과 성미영
두 가지 입출력 방식

Synchronous Asynchronous

운영체제 1.23 인천대학교 컴퓨터공학과 성미영


장치 상태 테이블 (Device-Status Table)

운영체제 1.24 인천대학교 컴퓨터공학과 성미영


DMA (Direct Memory Access) 구조

• 고속 입출력 장치를 위한 기법

• tape, disk, 통신 네트워크 등 I/O interrupt 가 자주 일어남


– PIO (Programmed I/O): CPU 가 장치제어기의 상태 비트를 반복적으로 검사하여
1 바이트씩 옮기는 방식
– 저속 : 9600 bps(cf. baud, 보 ), 1000microsec. 마다 2 micro sec.
– 고속 : 4 micro sec. 마다 2 micro sec.
 DMA controller 가 직접 CPU 간섭 없이 memory 와 controller 의 buffer
사이에 블록 단위로 I/O

• DMA 동작 원리 (p419 참조 )
– device driver 가 DMA controller 의 register 들 setting
 출발 주소
 목적지 주소
 전송 길이
 제어 레지스터에 제어 비트 설정하여 I/O 명령
– 끝나면 CPU 에 Interrupt
– 메모리는 한 순간에 하나의 워드만 전송 가능
 cycle stealing: DMA 제어기가 기억장치 사이클을 훔침

운영체제 1.25 인천대학교 컴퓨터공학과 성미영


DMA (Direct Memory Access) 구조

운영체제 1.26 인천대학교 컴퓨터공학과 성미영


DMA 전송을 수행하는 6 단계 처리
(p563)
장치 드라이버가 디스크
자료를 주소 X 에 있는
버퍼로 옮길 것을 지시
받는다 .

DMA 제어기가 장치 드라이버가 디스크


바이트들을 버퍼 X 로 제어기에게 디스크로부터
전송한다 . 이 때 메모리 주소 X 에 있는 버퍼로 C
주소를 증가시키고 C 를 바이트를 옮기도록 지시한
C=0 이 될 때까지 다.
감소시킨다 .
C=0 이 되면 DMA 는 전송
완료를 알리기 위해 CPU
를 인터럽트 한다 .

디스크 제어기가 DMA


전송을 시작한다 .

디스크 제어기가 각
바이트를 DMA 제어기로
보낸다 .

운영체제 1.27 인천대학교 컴퓨터공학과 성미영


문자 디바이스 드라이버 소스코드 예
01 #include <linux/module.h> 27 ssize_t dev_write (struct file *filp, const char *buffer, size_t count, loff_t *f_pos)
02 #include <linux/kernel.h> 28 {
03 #include <asm/uaccess.h> 29 printk("KERNEL_ALERT: called write \n");
04 #include <linux/slab.h> 30 copy_from_user(buf, buffer, count);
31 return 0;
05 #include <linux/fs.h>
32 }
06
33 int dev_release (struct inode *inode, struct file *filp)
07 #define MYDEV_NAME "mydev"
{
08 #define MYDEV_MAJOR 100
36 printk( "KERNEL_ALERT: file closed \n" );
09 #define buf_size 256
37 return 0;
10
38 }
11 unsigned char *buf;
39
12
40 struct file_operations dev_fops =
13 int dev_open (struct inode *inode, struct file *filp)
41 {
14 {
42 read : dev_read,
15 printk( "KERNEL_ALERT: file opened \n");
43 write : dev_write,
16 return 0;
44 open : dev_open,
17 }
18 45 release : dev_release,
19 ssize_t dev_read(struct file *filp, char *buffer, size_t count, 46 };
loff_t *f_pos)
47
{
48 int init_module(void)
21 int I;
22 printk("KERNEL_ALERT: called read \n"); 49 {
23 i = copy_to_user(buffer, buf, count ); 50 int result;
24 return 0; 51 printk( "KERNEL_ALERT: mydev module is loading ...\n" );
25 } 52 result = register_chrdev( MYDEV_MAJOR, MYDEV_NAME, &dev_fops);
26

운영체제 1.28 인천대학교 컴퓨터공학과 성미영


현대 컴퓨터 시스템의 동작

1.29 인천대학교 컴퓨터공학과 성미영


컴퓨터 시스템 구조 (Computer System Architecture)
• 단일 CPU 시스템 (Single-CPU Systems)

• 다중 CPU 시스템 (Multiple-CPU Systems)


– 2 types
 멀티프로세서 시스템 (Multiprocessor Systems) = 병렬 시스템 (Parallel Systems)
– Tightly coupled (BUS)
– 2 개 이상의 다수의 CPU 로 구성된 하나의 시스템
– memory 공유
 클러스터형 시스템 (Clustered Systems)
– Closely linked ( 고속 네트워크 )
– 2 개 이상의 다수의 독자적 시스템 (individual systems) 의 연결로 구성
– storage 공유 ( 예 , SAN; storage-area network)
– LAN 을 통해 긴밀히 연결 ( 예 , LAN or InfiniBand)
– 장점
1. 처리율 (throughput) 향상
2. 규모의 경제 (economy of scale)
3. 신뢰성 (reliability) 향상 – 우아한 퇴보 (graceful degradation) 또는 결함 허용
(fault tolerance)
– symmetric .vs. asymmetric
• 분산 시스템 (Distributed Systems)
– Loosely coupled ( 네트워크 )

운영체제 1.30 인천대학교 컴퓨터공학과 성미영


대칭적 다중처리 (Symmetric Multiprocessing) 구조

운영체제 1.31 인천대학교 컴퓨터공학과 성미영


SMP(Symmetric Multiprocessing) Architecture

1.32 인천대학교 컴퓨터공학과 성미영


A Dual-Core Design

one chip

1.33 인천대학교 컴퓨터공학과 성미영


클러스터형 시스템 (Clustered System)
• multiple –CPU system

• 2 개 이상의 다수의 독자적 시스템 (individual systems) 의 연결로 구성

• storage 공유 ( 예 , storage-area networks (SANs)

• LAN 을 통해 긴밀히 연결 ( 예 , LAN or InfiniBand)

• 대칭형 (symmetric) .vs. 비대칭형 (asymmetric)


– 비대칭형 : 긴급 대기 (hot-standby) 모드의 한 컴퓨터가 활동하는 서버들을
감시
– 대칭형 : 각자 응용 수행하며 서로 감시 , 대칭형 보다 더 효율적
• 병렬 클러스터 (parallel cluster): shared storage 상의 데이터에 완전한 동시 접근
– 병렬 데이터베이스 : Oracle Parallel Server
– 분산 파일 시스템 : Sun Microsystems 사의 분산 락 관리자 DLM (distributed
lock manager)

• 글로벌 클러스터 (global cluster): WAN 상에서 clustering

• Some clusters are for high-performance computing (HPC)


– Applications must be written to use parallelization

운영체제 1.34 인천대학교 컴퓨터공학과 성미영


단순 일괄처리 시스템 (Simple Batch
Systems)
• 초기 컴퓨터
– 1 machine … 1 user
– hands-on ( 手動 )
• 단순 일괄처리 시스템 (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 카드 / 초

운영체제 1.35 인천대학교 컴퓨터공학과 성미영


단순 일괄처리 시스템
• 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

운영체제 1.36 인천대학교 컴퓨터공학과 성미영


단순 일괄처리 시스템의 주기억장치 구성도

상주 모니터
Loader
Job sequencing
Control card interpreter

운영체제 1.37 인천대학교 컴퓨터공학과 성미영


Spooling

운영체제 1.38 인천대학교 컴퓨터공학과 성미영


운영체제 구조

• 멀티프로그래밍 (Multiprogramming): 효율을 위해 필요


– 단일 사용자가 CPU 와 I/O 장치를 항상 바쁘게 만들기 어려움
– CPU 가 항상 실행할 job(code and data) 이 있도록 편성
– 전체 job 의 일부를 메모리에 유지
– 하나의 job 선택하여 실행 : job scheduling
– 입출력 등으로 대기가 필요하면 OS 는 다른 job 으로 전환

• 시분할 (Timesharing) 또는 멀티태스킹 (Multitasking): s logical


extension in which CPU switches jobs so frequently that users can interact with
each job while it is running, creating interactive computing
– Response time 짧아야 (1 초 이내 )
– 각 사용자는 메모리에 최소한 하나의 프로그램을 가짐  process
– 여러 job 준비 상태  CPU scheduling
– 만일 process 를 적재할 메모리가 부족하면 , swapping 이 일어나 일부
process 를 디스크로 이동
– Virtual memory 는 process 일부만 메모리에 있어도 수행

운영체제 1.39 인천대학교 컴퓨터공학과 성미영


다중 (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 할당

• CPU scheduling
– 주기억 장치 안의 준비 상태인 job 중에서 실행할 job 을 선택하는 작업

운영체제 1.40 인천대학교 컴퓨터공학과 성미영


다중 일괄처리 시스템 주기억장치 구성도

여러 개의 프로그램을 동시에 주기억장치에 넣고 CPU 를 분할 사용

운영체제 1.41 인천대학교 컴퓨터공학과 성미영


시분할 시스템 (Time-Sharing Systems)

• 다중 일괄처리 시스템의 단점
– User 는 job 이 실행되는 동안 interact 할 수 없음
• 시분할 기법 (1960 년대 ~)
– Multiprogramming 의 확장 ( 빈번하게 교대 )  대화식 (interactive)
– interactive 하려면 응답시간 (response time) 이 짧아야 함 (1 초 이내 )
– CPU 시간을 아주 짧게 나누어 interact 할 수 있게 함
• 시분할 운영체제를 구현하는 기법들
– 가상 기억장치 (virtual memory)
– 파일 시스템 (file system)  사용자가 data 를 편리하게 이용
– 디스크 관리 (disk management)
– 병행 수행 (concurrent execution) 을 위한 CPU scheduling
– 실행 순서 제어위한 작업사이의 동기화와 통신 (job synchronization and
communication)
– 교착상태 (deadlock) 처리
• Time-sharing = CPU Scheduling + Multiprogramming

• OS 중심주제
– Multiprogramming
– Time-sharing

운영체제 1.42 인천대학교 컴퓨터공학과 성미영


운영체제 연산
• Interrupt
– H/W generated interrupt (I/O 완료 event) -> signal to the CPU
– S/W generated interrupt (trap) -> system call (monitor call)
– 기타 프로세스 문제 : 무한 루프 (infinite loop), 프로세스간 상호 수정으로 발생하는
문제 등

• Interrupt 처리 절차
1. 하던 일 중단 : return address 저장
 Return address 의 저장
 memory 특정위치에 : 초기 컴퓨터
 system stack 에 : 최근 컴퓨터
2. Interrupt 종류 확인
 polling ( 인터럽트 요청 신호만 전달 , 단일 회선 인터럽트 요청 )
 vectored interrupt ( 하드웨어적으로 확인 : 인터럽트를 요청한 장치의 주소 전달 ,
다중 회선 인터럽트 요청 )
3. 해당 interrupt 의 service routine 으로 제어 이동 후 실행 완료
 Interrupt vector: 장치번호로 인덱스된 포인터들의 배열 (a table of pointers
indexed by a unique device number)
4. 하던 일 다시 시작 : return address 부터 실행

• Interrupt 진행 중 새로운 interrupt 오면


– disable : 기다림
– enable : 우선순위에 따라 처리 (sophisticated system)
운영체제 1.43 인천대학교 컴퓨터공학과 성미영
운영체제와 하드웨어 보호
• 이중 모드 (Dual-Mode Operation)
– mode bit
 1 -> user mode ( 사용자 모드 )
 0 -> kernel mode (monitor mode, supervisor mode, system mode, privileged
mode)
– H/W : mode bit(1 bit)
 MS-DOS for Intel 8088 (no mode bit) has no dual mode
– 특권명령 (privileged instruction) 의 사용 -> trap
( 모니터 모드에서만 동작해야 하는 명령 )
– interrupt 나 trap 생기면 monitor mode 로 전환
• 타이머 (Timer)
– 무한 루프 (infinite loop) 또는 프로세스의 자원 독차지 방지
– 일정 기간 후 인터럽트 발생하도록 설정
– OS 가 카운터 감소
– 카운터가 제로가 되면 인터럽트 발생
– 제한 시간 지난 프로그램을 종료하고 스케줄링 프로세스가 제어를 시작하도록 설정

운영체제 1.44 인천대학교 컴퓨터공학과 성미영


User Mode 에서 Kernel Mode 로의 전환

Interrupt/fault

monitor user
set user mode

운영체제 1.45 인천대학교 컴퓨터공학과 성미영


출력을 수행하고 있는 단일 프로세스에 대한 인터럽트 시간선

운영체제 1.46 인천대학교 컴퓨터공학과 성미영


프로세스 관리 (Process Management)
• Process(active entity ) 는 실행 중인 Program(passive entity).

• 작업의 단위

• Process 는 작업 수행을 위해 자원을 필요로 함


– CPU, memory, I/O, files
– Initialization data
• Process 는 종료되면 재사용 가능한 자원을 반환

• Single-threaded process 는 실행할 다음 명령 (instruction) 의 위치를 가리키는 program


counter 를 한 개 가짐
– Process 는 완료될 때까지 매 순간 명령들을 차례대로 실행
• Multi-threaded process 는 thread 마다 하나의 program counter 를 가짐

• 일반적으로 시스템에는 하나 또는 다수의 CPU 상에서 다수의 process 들 (user


processes, OS processes) 이 동시에 실행됨
– CPU 를 다중화 (multiplexing) 해서 process/thread 동시성 (concurrency) 유지
• OS 의 프로세스 관리 활동
– 사용자 프로세스와 시스템 프로세스의 생성과 삭제
– 프로세스의 일시 중지와 재수행
– 프로세스 동기화를 위한 기법 제공
– 프로세스 통신을 위한 기법 제공
– 교착상태 처리를 위한 기법 제공

운영체제 1.47 인천대학교 컴퓨터공학과 성미영


메모리 관리 (Memory Management)

• 모든 data 는 processing 되기 전후에 메모리에 존재


• 모든 instructions in memory 순서대로 실행됨
• 메모리 관리는 메모리에 있어야 할 것을 결정
– CPU 활용과 사용자 응답을 최적화 할 수 있도록
• OS 의 메모리 관리 활동
– 메모리의 어느 부분이 현재 사용되고 있으며 누구에 의해 사용되고
있는지를 추적
– 어떤 프로세스 ( 또는 그 일부 ) 들을 메모리에 적재하고 제거할
것인가를 결정
– 필요에 따라 메모리 공간을 할당 (allocating) 하고 회수
(deallocating)

1.48 인천대학교 컴퓨터공학과 성미영


메모리 관리

• OS 는 저장된 정보에 대해 일관성 있고 논리적인 관점을 제공


– 저장장치의 물리적 특성을 논리적인 저장단위로 추상화 - file
– 각 매체 (i.e., magnetic disk, optical disk) 는 장치 (i.e., disk drive,
tape drive) 에 의해 제어됨
 속성 : 접근속도 (access speed), 용량 (capacity), 전송율 (data-
transfer rate), 접근방식 (access method; sequential or random)

• OS 의 파일 시스템 관리
– 파일은 통상 디렉토리로 구성
– 다수 사용자가 파일에 접근할 때는 누구에 의해 , 어떤 방법으로
접근될 수 있는지의 제어가 바람직
– 파일 관리 활동
 파일과 디렉토리 생성 및 제거
 파일과 디렉토리 조작을 위한 프리미티브 제공
 파일을 보조저장장치로 사상
 안전한 (non-volatile) 저장장치에 백업

1.49 인천대학교 컴퓨터공학과 성미영


대용량 저장장치 관리 (Storage
Management)
• Disk 는 메모리에 담을 수 없는 data 를 영구적으로 저장

• Disk subsystem 과 관련 algorithm 들이 시스템 전체의 속도에 영향을 줌

• OS 의 대용량 저장장치 관리 활동
– 자유공간 (free-space) 관리
– 저장장치 할당
– 디스크 스케줄링
• 3차 저장장치 (tertiary storage)
– optical storage(CD, DVD), magnetic tape
– WORM (write-once, read-many-times), RW (read-write) 형식 등 다양
– 백업용 , 시스템 성능에 영향을 주지 않으나 여전히 OS 의 관리 필요
(mount, umount, allocation, deallocation, etc.)

1.50 인천대학교 컴퓨터공학과 성미영


캐싱 (Caching)
• 컴퓨터 시스템의 많은 계층에서 수행되는 중요 개념 ( 하드웨어 , OS, 소프트웨어 )

• 사용 가능성이 많은 자료를 느린 저장장치로부터 빠른 임시 저장장소 (cache) 로


복사
– ( 예 ) index register(a high-speed cache for main memory)
– ( 예 ) main memory(a last cache for secondary storage)
• 빠른 저장장소 (cache) 에 정보가 존재하는지 검사
– 있으면 , 즉시 cache(fast) 에서 정보 사용
– 없으면 , memory access 하여 cache(fast) 로 정보 복사 후 사용
• cache 는 캐시되는 저장장소보다 크기가 작음
– 캐시 관리는 중요한 설계 문제
– 캐시 사이즈와 교체 정책 (replacement policy) 이 중요
• 응집성과 일관성 (Coherency and Consistency)
– multitasking: variable copy 들의 coherency 문제
– multiprocessor: local cache 들의 coherency 문제
– distributed system 에서의 coherency 문제 : file copy 들 + local cache 들의
coherency 문제

운영체제 1.51 인천대학교 컴퓨터공학과 성미영


저장장치의 성능

CMOS: complementary metal oxide semiconductor


DRAM: dynamic random access memory

운영체제 1.52 인천대학교 컴퓨터공학과 성미영


Integer A 의 Disk 에서 Register 로의 이동

• Multitasking 환경에서는 process 들이 가장 최신의 데이터를 사용할 수 있게 해야 함


– 데이터의 여러 복사본이 실행 중인 여러 task(process) 의 register 에 존재할 수 있음
• Multiprocessor 환경에서는 CPU 가 최신의 cache 데이터를 사용할 수 있도록 캐시
일관성 (cache coherency) 를 제공해야 함
– 데이터의 여러 복사본이 여러 processor 의 local cache 에 존재할 수 있음
• Distributed 환경에서는 일관성 (coherency) 문제가 더욱 복잡해짐
– 데이터가 들어 있는 파일의 여러 복사본과 데이터의 여러 복사본이 여러 processor
의 local cache 에 존재할 수 있음
– write-through, write-back(=delayed-write) 등 cache update 정책
– client-initiated, server-initiated 등 캐시 유효성 검증 (cache validity) 방법들
– 17 장 참조

운영체제 1.53 인천대학교 컴퓨터공학과 성미영


입 / 출력 시스템 (I/O Systems)

• OS 의 목적 중 하나는 사용자로부터 특정 하드웨어 장치의


특성을 숨기는 것

• I/O subsystem 구성
– buffering ( 전송되는 데이터를 일시적으로 저장 ), caching ( 성능을
위해 데이터의 일부를 빠른 기억장치에 저장 ), spooling ( 한 작업의
출력을 다른 작업의 입력과 중복 ) 을 포함한 메모리 관리 구성 요소
– 일반적인 장치 드라이버 인터페이스
– 특정 하드웨어 장치들을 위한 드라이버

1.54 인천대학교 컴퓨터공학과 성미영


보호와 보안 (Protection and Secutity)
• Protection – 컴퓨터 시스템의 하드웨어 자원에 대해 프로세스 또는
사용자의 접근을 제어하는 기법

• Security – 컴퓨터 시스템의 소프트웨어 자원에 대한 내부공격 ( 부적절한


접근 ) 또는 외부공격 ( 인증정보의 도난 ) 을 방어
– ( 예 ) 서비스 거부 (denial-of-service), 웜 (worms), 바이러스 (viruses),
식별자 도용 (identity theft), 서비스 도용 (theft of service)

• 시스템은 우선 사용자를 식별하고 나서 , 누가 무슨 일을 할 수 있는지


결정
– 사용자 식별자 (user IDs, security IDs) 는 이름과 연관된 번호를
포함하며 사용자마다 할당
– 접근제어를 위해 user ID 는 그 사용자의 모든 파일과 프로세스에
연관되어 접근 제어
– 그룹 식별자 (group ID) 는 사용자 그룹을 정의하며 파일과
프로세스에 연관되어 접근 제어
– 유효 사용자 식별자 (effective user ID) 를 이용하여 권한 확대
( privilege escalation)

1.55 인천대학교 컴퓨터공학과 성미영


분산 시스템 (Distributed Systems)
• 이완결합 (loosely coupled multiprocessor systems)
– 각 processor 는 자신의 local memory 를 가짐
– 네트워크 (LAN, WAN, MAN, BlueTooth, 802.11) 통해 교류
• 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 9, Netware
– 파일 공유 (file sharing) 지원
– 통신 체계 (communication scheme) 지원
– 독립적으로 실행하며 (acts autonomously) 네트워크로 연결된 컴퓨터와 통신 가능
• Distributed Operating System
– 덜 독립적 (less autonomy between computers)
– 여러 OS 가 협력하여 네트워크를 제어하는 하나의 OS 가 있는 것 같은 환상
(illusion) 제공
• 분산 시스템의 궁극적인 목적
– 분산 시스템이 너트워크에 걸쳐 있는 수 많은 컴퓨터들로 구성되어 있음에도
불구하고 , 사용자는 단일의 통합된 컴퓨팅 시스템이라는 인식을 갖도록 하는 것

운영체제 1.56 인천대학교 컴퓨터공학과 성미영


병렬 시스템 (Parallel Systems, Multiprocessor
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)

운영체제 1.57 인천대학교 컴퓨터공학과 성미영


병렬 시스템 구조

Completely-connected network Star-connected network

Linear array network Ring network

운영체제 1.58 인천대학교 컴퓨터공학과 성미영


Mesh Network

2-dimensional mesh 2-dimensional


3-dimensional mesh
wraparound mesh

운영체제 1.59 인천대학교 컴퓨터공학과 성미영


Tree Network

Complete binary tree Complete binary tree with


message routing

Fat tree network


운영체제 1.60 인천대학교 컴퓨터공학과 성미영
Hypercube Network

운영체제 1.61 인천대학교 컴퓨터공학과 성미영


전용 시스템 (Special-Purpose Systems)

• 실시간 내장형 시스템 (Real-Time Embedded Systems): 19 장


– 매우 다양
 Unix 기반 특수목적 응용 프로그램
 응용 전용 칩 (ASIC; Application-Specific Integrated Circuits)

– 실시간 OS 수행
 선점 , 우선순위 기반의 실시간 CPU 스케줄링
 선점형 커널
 지연시간 최소화

• 멀티미디어 시스템 (Multimedia System): 20 장


– 압축과 해제
– deadline 요구
– 우선순위 기반 실시간 스케줄링
– 실시간 전송 프로토콜
• 휴대용 시스템 (handheld System)
– PDA (Personal Digital Assistant) : 작은 메모리 , 느린 처리기 , 작은 스크린
– 작은 스크린 입출력 문제 해결 위해 web-clipping( 웹 페이지 일부만 출력 )
– BlueTooth, IEEE 802.11 등 무선 기술 사용
운영체제 1.62 인천대학교 컴퓨터공학과 성미영
실시간 시스템 (Real-Time System)
• 엄격한 시간제약 하에서 수행되는 시스템
• 특정응용의 제어 장치
– sensor  computer  control
– ( 예 ) automobile-engine fuel-injection, weapon
• 종류
 Hard real-time system
 Soft real-time system
• Hard 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 ( 제어시스템 또는 로보틱스
)

운영체제 1.63 인천대학교 컴퓨터공학과 성미영


실시간 시스템
• 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 (Earliest Deadline First) Algorithm
– Rate Monotonic Algorithm
• Disk scheduling ( 아래 참고자료 P282)
– EDF disk scheduling
– SCAN-EDF
• 참고자료 : Multimedia: Computing Communication & Applications,
Steinmetz and Nahrstedt, Prentice-Hall, 1995.
운영체제 1.64 인천대학교 컴퓨터공학과 성미영
Rate Monotonic vs. EDF

d2 d3 d4 d5 d6

운영체제 1.65 인천대학교 컴퓨터공학과 성미영


EDF 디스크 스케줄링

운영체제 1.66 인천대학교 컴퓨터공학과 성미영


컴퓨팅 환경

• 전통적 컴퓨터 (Traditional computer)


– 시간에 지남에 따라 전통적 컴퓨터의 구분이 모호해짐
– 사무실 환경
 과거
– 네트워크로 연결된 PC 들
– batch 나 time-sharing 을 하는 mainframe 이나 mini computer 에
연결된 terminal 들
 현재
– 포탈 (Portals; provides web accessibility to their internal servers)
– 네트워크 컴퓨터 (network computers = terminals that understand
web-based computing)
– 무선 네트워크 (wireless networks) 사용
– 홈 네트워크
 과거
– 느린 모뎀을 가진 단일 시스템
 현재
– firewalled, fast networked

운영체제 1.67 인천대학교 컴퓨터공학과 성미영


클라이언트 - 서버 컴퓨팅 (Client-Server
Computing)

 넓은 의미의 분산 시스템의 한 형태
 똑똑한 PC 로 덤 터미널 (Dumb terminals) 대체
 많은 시스템들이 clients 의 요구에 응답하는 서버 시스템으로 동작
 Compute-server 시스템 : client 의 서비스를 요청을 받아
처리하고 결과를 다시 돌려줄 수 있는 인터페이스 제공 (i.e.
database)
 File-server 시스템 : client 가 파일을 create/update/read/delete
할 수 있는 인터페이스 제공 (i.e. web hard disk server)
 서버의 부하가 단점

운영체제 1.68 인천대학교 컴퓨터공학과 성미영


피어간 컴퓨팅 (Peer-to-Peer Computing)

• 또 다른 넓은 의미 분산 시스템 모델
• P2P 는 client 와 server 구분 없음
– 대신 모든 노드가 동등한 동료
– client 나 server, 또는 두 가지 모두 역할
– 노드는 반드시 P2P network 에 join 해야 함
 각 노드는 네트워크의 central lookup service 에 자신의
서비스를 등록하거나 (Napster)
 한 peer 는 client 자격으로 원하는 서비스를 제공하는 노드를
찿기 위해 broadcasting 하면 해당 서비스를 제공하는 노드가
응답 : discovery protocol (Gnutella)
– ( 예 ) 1990 년 후반의 file-sharing 서비스들 : Napster, Gnutella
• 저작권 관리가 문제

운영체제 1.69 인천대학교 컴퓨터공학과 성미영


웹 기반 컴퓨팅 (Web-Based Computing)

• 웹이 ubiquitous 화 되어 감 (wired or wireless access)


• PC 가 가장 흔한 접근 장치
• PDA 나 핸드폰 등의 무선 기기들이 웹 접근 장치가 되어 감
• 유사한 서버들 사이의 통신 트래픽 균형을 관리하는 load balancers
등의 새로운 장치들 이 등장

• Windows 95
기반이었던 client-side 운영체제가 client 와 server
역할을 동시 지원할 수 있는 Linux, Windows XP, 등으로 진화

운영체제 1.70 인천대학교 컴퓨터공학과 성미영


오픈 소스 운영체제 (Open-Source Operating Systems)

• OS 가 바이너리 (closed-source) 가 아니 소스코드 (source-code)


형태로 제공

• 저작권 보호 (copy protection)


나 디지털 저작권 관리 (Digital Rights
Management; DRM) 운동에 반대하여 시작

• 처음 시작은 Free Software Foundation (FSF), “copyleft” GNU Public


License (GPL)

• ( 예 ) GNU/Linux, BSD UNIX (including core of Mac OS X), Sun


Solaris

운영체제 1.71 인천대학교 컴퓨터공학과 성미영


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

Kilo = 210 = 1,024


Mega = 220 = 1,048,567
Giga = 230 = 1,073,741,824
Tera = 240 = 1,099,511,627,776
Peta = 250 = 1,125,899,906,842,624

운영체제 1.72 인천대학교 컴퓨터공학과 성미영


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

운영체제 1.73 인천대학교 컴퓨터공학과 성미영


내 인생의 신조

노력  자신
노력한 것의 ? 만 돌아온다
그러니까 ? 배 열심히 해야
어차피 해야 한다면 ???? 하자

Hard 한 걸 Hard 하게 하면 Hard 해진다 .


Hard 한 것은 아름답다 .

1.74 인천대학교 컴퓨터공학과 성미영


내 인생의 신조

나는 지식보다 상상력이 더 중요함을 믿는다 .


신화가 역사보다 더 많은 의미를 담고 있음을 나는 믿는다 .
꿈이 현실보다 더 강력하며
희망이 항상 어려움을 극복해 준다고 믿는다 .
그리고 슬픔의 유일한 치료제는 웃음이며
사랑이 죽음보다 더 강하다는 걸 나는 믿는다 .
이것이 내 인생의 여섯 가지 신조이다 .

( 로버트 풀검 )
류시화 잠언시집 - [ 지금 알고 있는 걸 그때도 알았더라면 ] 시집 중

1.75 인천대학교 컴퓨터공학과 성미영


무엇이 성공인가

자주 그리고 많이 웃는 것
현명한 이에게 존경을 받고
아이들에게서 사랑을 받는 것
정직한 비평가의 찬사를 듣고
친구의 배반을 참아 내는 것
아름다움을 식별할 줄 알며
다른 사람에게서 최선의 것을 발견하는 것
건강한 아이를 낳든
한 뙈기의 정원을 가꾸든
사회 환경을 개선하든
자기가 태어나기 전보다
세상을 조금이라도 살기 좋은 곳으로
만들어 놓고 떠나는 것
자신이 한때 이곳에 살았음으로 해서
단 한 사람의 인생이라도 행복해지는 것
이것이 진정한 성공이다 .

( 랄프 왈도 에머슨 )
류시화 잠언시집 - [ 지금 알고 있는 걸 그때도 알았더라면 ] 시집 중
1.76 인천대학교 컴퓨터공학과 성미영
일찍 일어나는 새

당신이 새라면
아침에 일찍 일어나야 한다 .
그래야 벌레를 잡아먹을 수 있을 테니까 .
만일 당신이 새라면
아침에 일찍 일어나라 .
하지만 만일
당신이 벌레라면
아주 늦게 일어나야 하겠지 .

( 쉘 실버스타인 )
류시화 잠언시집 - [ 지금 알고 있는 걸 그때도 알았더라면 ] 시집 중

1.77 인천대학교 컴퓨터공학과 성미영

Das könnte Ihnen auch gefallen