-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathoutput.txt
186 lines (185 loc) · 36.7 KB
/
output.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
slide 1
Chapter 2: Operating-System Structures (( ))Operating System Concepts – 10th EditionSilberschatz, Galvin and Gagne ©2018
slide 2
Chapter 2: Operating-System Structures❖ ( ) 서비스 (Operating System Services)❖ ( ) 사용자 인터페이스 (User Operating System Interface)❖ 시스템 콜 (System Calls)❖ 시스템 콜 유형 (Types of System Calls)❖ 시스템 프로그램 (System Programs)❖ ( ) 설계 및 구현 (Operating System Design and Implementation)❖ ( ) 구조 (Operating System Structure)❖ ( ) 디버깅 (Operating System Debugging)❖ ( ) 생성 (Operating System Generation)❖ 시스템 부팅 (System Boot)Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.22.2Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 3
목표 (Objectives)❖ 운영체제가 사용자, 프로세스, 다른 시스템에 제공하는 서비스 설명❖ 운영체제를 구성하는 다양한 ( )에 대해 논의❖ 운영체제 설치, 맞춤화 과정(customization), 부팅하는 ( )❖ To describe the services an operating system provides to users, processes, and other systems❖ To discuss the various ways of structuring an operating system❖ To explain how operating systems are installed and customized and how they bootOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.32.3Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 4
운영체제 서비스 : View❖ 운영체제는 사용자(또는 ( )) 들에게 ( )의 실행 환경을 제공한다. ❖ 사용자 ( )의 적절한 실행과 시스템의 효율적 운용을 담당한다.Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.42.4Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 5
운영체제 서비스 (Operating System Services) 1❖ 사용자 업무를 수행하는 데 필요한 기능을 제공하는 운영체제 서비스l 사용자 인터페이스 ( ) 라인 인터페이스 (Command Line Interface)– 문자열 명령 입력 배치 인터페이스 (Batch Interface)– ( ) 또는 ( ) 집합을 파일로 제공 GUI (Graphical User Interface)//FMBAT EXEC PGM=FILEMGR//STEPLIB DD DISP=SHR,DSN=HLQ.SFMNMOD1//SYSPRINT DD SYSOUT=*//SYSIN DD *$$FILEM TPIMP DSNIN=FMN.XMLINP,$$FILEM MEMBER=*,$$FILEM DSNOUT=FMN.IMPORT.TEMPLATE,$$FILEM REPLACE=YES/*Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.52.5Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 6
운영체제 서비스 (Operating System Services) 2❖ 사용자 업무를 수행하는 데 필요한 기능을 제공하는 운영체제 서비스l 프로그램 실행 (Execution) 프로그램을 메모리에 적재, 실행, 실행 종료 (정상 또는 비정상)l ( ) 연산 (I/O) 프로그램 실행에서 요구하는 파일 또는 ( ) 장치 등의 ( ) 서비스Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.62.6Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 7
운영체제 서비스 (Operating System Services) 3❖ 사용자 업무를 수행하는 데 필요한 기능을 제공하는 운영체제 서비스l ( ) 시스템 ( )과 디렉토리 생성과 삭제 ( )과 디렉토리 읽고 쓰기 ( )과 디렉토리 찾기 ( ) 정보 보기 ( ) 접근 권한 관리메시지 전달(Message Passing)공유 메모리(Shared Memory)l 통신 동일한 컴퓨터 또는 네트워크로 연결된 컴퓨터에 있는 프로세스 간정보 교환 통신은 메시지 전달 기법 (운영체제가 패킷을 이동하는데 관여함) 또는 공유 메모리를 이용Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.72.7Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 8
운영체제 서비스 (Operating System Services) 4❖ 사용자 업무를 수행하는 데 필요한 기능을 제공하는 운영체제 서비스l ( ) 탐지 (Error Detection) 운영체제는 가능한 모든 ( )를 인지하고 있어야 함 ( )는 CPU, 메모리, 입출력 장치, 사용자 프로그램 등에서 발생 가능 운영체제는 올바르고 일관된 계산을 보장하기 위해 각 타입의 ( )에대해 올바른 조처를 취해야 한다. 디버깅 장치는 사용자와 개발자의 효율적인 시스템 사용을 향상시킬수 있다.Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.82.8Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 9
운영체제 서비스 (Operating System Services) 5❖ 시스템 ( )을 공유하여 시스템의 효율적인 운영을 보장하는 서비스l ( ) 할당(resource allocation) 다수의 사용자나 다수의 작업들이 동시에 실행될 때 각각에 ( )을할당해야 함– ( ) 종류 - CPU cycles, main memory, file storage, I/O devices. ( )의 일부는 특별한 할당 코드를 가지며, 동일한 컴퓨터 또는네트워크로 연결된 컴퓨터에 있는 프로세스 간 정보 교환 가능l 회계(accounting) 어떤 사용자가 어떤 ( )을 얼만큼 쓰는지 기록하고 관리Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.92.9Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 10
운영체제 서비스 (Operating System Services) 6❖ 시스템 자원을 공유하여 시스템의 효율적인 운영을 보장하는 서비스l ( )와 보안(protection and security) ( )는 시스템 자원에 대한 모든 접근이 통제되도록 보장하는 것 외부(external)로부터 시스템 보안을 유지하기 위해 사용자 인증(User Authentication)이 필요하고 부적합한 접근(invalid access attempts)시도로부터 입출력 장치를 ( )해야 한다. 시스템 전체에 예방책이 제정되어 한다.Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.102.10Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 11
사용자 인터페이스 – CLI❖ ( ) 해석기 (Command interpreter)l CLI, 또는 ( ) 해석기를 통해 ( ) 직접 입력l 커널 또는 시스템 프로그램으로 구현l 선택 가능한 여러 개의 ( ) 해석기 (shells) 제공 – UNIX, LinuxOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.112.11Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 12
사용자 인터페이스 – CLI❖ ( )어 해석기 (Command interpreter)l 역할 : 사용자의 ( )어를 가져와 그것을 실행한다. ( )어 해석기가 ( )을 실행하는 코드를 포함하는 경우도 있음– ( )어 개수가 프로그램 크기를 결정 시스템 프로그램으로 ( ) 구현 (UNIX)– ( ) 해석기 프로그램 크기가 작아짐– 새로운 ( )을 추가해도 셸을 변경시킬 필요가 없다.– 예 : rm file.txt (p65)( )해석기( )1( )2( )해석기( )1( )2Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.122.12Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 13
Bourne Shell Command InterpreterOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.132.13Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 14
사용자 인터페이스 – GUI❖ 사용자 친화적인 상징 인터페이스(metaphor interface)l 마우스, 키보드와 모니터 사용l 아이콘이 파일, 프로그램, 액션 등을 표시l 인터페이스 내의 대상에 대한 다양한 마우스 버튼으로 다수의 행위가발생한다(정보 제공, 선택사항, 실행, 폴더 열기 등)l 1970년대 초 Xerox PARC 연구에서 시작❖ 많은 시스템은 CLI와 GUI 인터페이스를 모두 ( )고 있다.l Microsoft 윈도우는 CLI 명령어 셸을 ( )고 있는 GUI이다.l Apple Mac OS X는 UNIX 커널과 셸을 ( )고 있는 Aqua GUI이다.l Unix와 Linux는 선택적인 GUI(CDE, KDE, GNOME)를 가진 CLI이다. Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.142.14Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 15
( ) 인터페이스iPad touch screen❖ ( ) 디바이스는 새로운인터페이스가 필요l 마우스 사용이 불가능하고바람직하지 않음l 액션과 선택은 손동작에 근거l 글자 입력을 위해 가상 키보드(Virtual keyboard for text entry) 사용Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.152.15Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018Springboard
slide 16
The Mac OS X GUIOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.162.16Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 17
시스템 콜 (System Calls)❖ 시스템 콜(호출)은 운영체제가 제공하는 서비스에 대한 인터페이스를사용자에게 제공한다❖ 일반적으로 ( ) 언어(C 또는 C++)로 작성된 루틴 형태로 제공❖ 대부분 직접적인 시스템 콜 사용보다는 ( )의 Application Program Interface (API)를 통해 접근한다.l 사용자 프로그램 -> API 사용 -> 시스템콜Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.172.17Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 18
시스템 콜 (System Calls)❖ 가장 많이 사용되는 APIsl 윈도우의 Win32 APIl POSIX API (모든 버전의 UNIX, Linux, and Mac OS X)lJava Virtual Machine(JVM)의 Java APIPOSIX (portable operating system interface) : 이식 가능 운영 체제 인터페이스. 서로 다른 UNIX OS의 ( ) API를 정리 → 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.182.18Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 19
Example of System Calls❖ ( )의 내용을 다른 ( )에 복사하는 시스템 콜의 순서(p70)❖ System call sequence to copy the contents of one file to another file(UNIX cp 명령)cp in.txt out.txtOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.192.19Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 20
Example of Standard API (p71)Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.202.20Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 21
시스템 콜 구현 (System Call Implementation) 1❖ 통상적으로, 각 시스템 콜에 대하여 숫자가 부여된다l 시스템 콜 인터페이스가 이 숫자로 된 인덱스를 가진 테이블을 관리한다. ❖ 시스템 콜 인터페이스가l 운영체제 커널 내에 있는 요청된 시스템 콜을 하고l 시스템 콜의 ( ) 상태와 해당 ( ) 값을 ( )한다. Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.212.21Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 22
( ) 콜 구현 (System Call Implementation) 2❖ 개발자는 ( ) 콜이 어떻게구현되는지 알 필요 없다.l 개발자는 API를 제대로 사용하고,운영체제가 ( ) 콜의 결과로무슨 일을 하는지 알면 된다. l 운영체제 인터페이스의 자세한내용은 API에 의해 숨겨진다 실행시간 지원 ( )(컴파일러에 포함된라이브러리에 내장된 함수의집합)이 운영체제의 ( )콜을 연결해 주는 ( ) 콜인터페이스를 제공한다.Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.222.22Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 23
API – System Call – OS ( )Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.232.23Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 24
시스템 콜 파라미터 전달❖ 원하는 시스템 콜 이름 외에 많은 정보가 일반적으로 필요하다l 필요한 정보의 종류와 양은 운영제제와 시스템 콜에 따라 다르다.(* 시스템콜은 일반적인 용어다. 시스템 별로 시스템 콜에 해당하는 용어가 있다.)❖ 운영체제에 매개변수를 전달하는 세가지 일반적인 방법1. 가장 간단한 방법: 매개변수를 ( )에 전달 문제는 ( ) 숫자보다 더 많은 매개변수가 있는 경우는( )만으로는 부족하다.Calling programSubroutineMove N, R1Move M, R2Call NumAddMove R0, Sum...NumAdd Clear R0Add (R1, R2) R0ReturnOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.242.24Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 25
시스템 콜 파라미터 전달 : 테이블❖ 운영체제에 ( )를 전달하는 세가지 일반적인 방법 ...2. ( )가 메모리에 있는 블록, 테이블에 저장된다. 블록의 메모리 주소가 레지스터에 ( )로 전달된다. Linux와 Solaris에서 사용하는 방법Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.252.25Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 26
시스템 콜 파라미터 전달 : ( )❖ 운영체제에 매개변수를 전달하는 세가지 일반적인 방법 …3. 프로그램이 매개변수를 ( )에 넣는다 운영체제가 ( )으로부터 매개변수를 꺼낸다l 블록과 ( ) 방법은 매개변수 개수나 길이에 제약을 가하지 않는다Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.262.26Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 27
시스템 콜 유형 1❖시스템 콜 : 5종류❖프로세서 제어l ( ) 생성(create process), ( ) 종료(terminate process)l 정상적 종료(end), 비정상적 종료(abort)l 적재(load), 실행(execute)l ( ) 속성(attributes) 획득(get), ( ) 속성 설정(set)l 시간 대기l 사건 대기(wait event), 사건 알림(signal event)l 메모리 할당 및 제거(allocate and free memory)l 장애 시 메모리 덤프l 버그 찾는 debugger, 한 단계씩 실행l ( ) 간에 공유 자료 접근을 관리하는 locksOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.272.27Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 28
시스템 콜 유형 2❖ ( ) 관리 (File management)l ( ) 생성 (create file), ( ) 삭제 (delete file)l ( ) 열기 (open), ( ) 닫기 (close file)l 읽기, 쓰기, 위치 변경 (read, write, reposition)l ( ) 속성 획득 및 설정 (get and set file attributes)❖ 장치 관리 (Device management)l 장치 요청, 장치 방출 (request device, release device)l 읽기, 쓰기, 위치 변경 (read, write, reposition)l 장치 속성 획득 및 설정 (get device attributes, set device attributes)l 논리적 장치 부착 및 분리 (logically attach or detach devices)Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.282.28Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 29
시스템 콜 유형 3❖ 정보 관리(Information maintenance)l 시간과 날짜의 설정과 ( )(get time or date, set time or date)l 시스템 데이터의 설정과 ( )(get system data, set system data)l 프로세스, 파일, 장치 속성의 ( )과 설정(get and set process, file, or device attributes)❖ 통신(Communications)l 통신 연결 생성, 제거l 메시지의 송신, 수신l 공유메모리 모델 생성, 메모리 영역 접근l 상태 정보 전달l 원격 장치의 부착(attach) 및 분리(detach)Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.292.29Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 30
시스템 콜 유형 4❖ 보호l 자원 접근을 제어(Control access to resources) 다중 프로그래밍 시스템 네트워킹과 인터넷l 접근 ( ) 반환 및 설정(Get and set permissions)l 사용자 접근 ( ) 및 거절(Allow and deny user access)Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.302.30Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 31
( )와 UNIX 시스템 콜Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.312.31Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 32
Standard C Library Example❖ C 프로그램이 printf() 호출 → ( ) “C 라이브러리”가 write() 시스템 콜 수행❖ C program invoking printf() library call, which calls write() system callOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.322.32Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 33
Example: MS-DOS❖ 단일 태스킹(monoprogramming)❖ 시스템이 시동될 때 ( )의명령해석기 호출❖ ( )의 프로그램을 실행하는간단한 방법 제공l 프로세스 생성하지 않는다❖ 단일 메모리 공간 (Single memory space)❖ 커널용 메모리를 제외한 메모리공간을 덮어쓰며 프로그램을 적재❖ 프로그램 종료 -> 쉘을 재적재At system startup running a programOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.332.33Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 34
Example: FreeBSD❖ UNIX 의 한 종류❖ 다중 태스킹(multiprogramming)❖ 사용자가 로그인할 때, 사용자가 선택한 쉘 (명령해석기)이 실행❖ 쉘이 fork() 시스템 콜을 실행하여 ( ) 생성l Exec()을 실행하여 프로그램을 ( )에적재함l 쉘은 ( ) 종료를 기다리거나 또는 다른사용자 명령을 수행한다❖ ( )는 exit() 시스템 콜을 실행하여 종료l 상태 코드 0 : 정상l 상태 코드 0 아닌 값 오류 코드Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.342.34Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 35
( ) 프로그램 (System Programs) 1❖ ( ) 프로그램(( ) 유틸리티라고도 함)은 프로그램 개발과 실행에편리한 환경을 제공한다. l 일부는 ( ) 콜에 대한 사용자 인터페이스, 다른 것들은 이보다 훨씬 더복잡하다. ❖ 운영체제에 대한 대부분 사용자의 인식은 ( ) 콜 보다는 ( )프로그램에 의해 결정된다. Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.352.35Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 36
시스템 프로그램 (System Programs) 2❖ 종류는 아래와 같다l 파일 관리l 상태 정보l 프로그래밍 언어 지원 (C, C++, Java 등)l 프로그램 적재와 실행l 통신l 백그( ) 서비스 (Background services)Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.362.36Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 37
시스템 프로그램 (System Programs) 3❖ 파일 관리 (File Management) l 일반적으로 파일과 디렉토리에 대하여 생성, 삭제, 복사, 개명 (rename), 프린트, 덤프, 리스트 등의 작업을 한다.❖ 상태 ( ) (Status Information)l 어떤 프로그램들은 시스템에 날짜, 시간, 가용한 메모리 용량, 디스크용량, 사용자의 수 등을 요청한다. l 다른 프로그램들은 자세한 성능, 로깅과 디버깅 ( )를 제공한다. 통상 이 프로그램들은 ( )를 단말기나 다른 출력 장치 등에 서식을갖추어 인쇄하거나 또는 GUI 윈도우에 표시한다. l 어떤 시스템은 레지스트리(registry)를 만들어 환경 설정 ( )를 저장하고검색한다. Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.372.37Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 38
시스템 프로그램 (System Programs) 4❖ 파일 변경l 파일을 생성하고 수정하는 텍스트 에디터 제공l 파일 내용을 검색하거나 변환하기 위한 특수 명령어 제공❖ 프로그래밍 언어 지원l 컴파일러, 어셈블러, 디버거와 인터프리터 등이 제공된다❖ 프로그램 적재와 실행 (p84~85)l 절대 ( )(Absolute loaders), 재배치 가능 ( )(relocatable loaders), 링키지 에디터(linkage editors), 중첩 ( )(overlay-loaders), 고급언어와기계어를 위한 디버깅 시스템 등이 제공된다❖ 통신l 프로세스, 사용자, 컴퓨터 시스템 간에 가상 접속을 이루기 위한 기법을제공한다l 다른 사용자 화면에 메시지를 전송하거나, 웹 페이지를 읽거나, 이메일메시지를 보내거나, 원격 로그인하거나, 한 기계에서 다른 기계로 파일전송을 할 수 있게 한다.Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.382.38Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 39
시스템 프로그램 (System Programs) 5❖ 백그라운드 서비스 (Background Service)l 부팅 시 살아남 일부는 시스템 ( ) 시 살아나고 끝난다 일부는 시스템 ( )해서 종료 시까지 살아있다l 디스크 검사, 프로세스 스케줄링, 예외 기록, 프린트 기능을 제공한다.l 사용자 모드에서 수행l 서비스, 서브시스템, 데몬(daemon) 등으로 알려져 있음Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.392.39Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 40
운영체제 설계 및 구현❖ 운영체제의 설계와 구현에 완전한 해결책은 없지만, 성공적인 접근 방법들이존재한다❖ 운영체제 별로 내부 구조는 매우 다르다❖ 첫 번째로 ( )와 명세를 정의하는 것이다❖ 하드웨어와 시스템 타입(일괄처리, 시분할, 단일사용자, 다중 사용자, 분산,실시간 등)의 선택에 따라 다르다❖ 사용자 ( )와 시스템 ( )l 사용자 ( ) – 운영체제는 사용이 편리, 배우기 쉽고, 안정되고, 안전하며신속해야 한다l 시스템 ( ) – 운영체제는 설계, 구현, 유지가 쉬워야 하며, 또한 적응성, 신뢰성, 무오류, 효율성을 가져야 한다Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.402.40Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 41
운영체제 설계 및 구현 : ( )과 기법❖ 중요한 원칙 : ( )과 메커니즘의 분리l ( ) (Policies): 무엇을 할 것인가?l 기법 (Mechanism): 어떻게 할 것인가?❖ ( )과 기법을 분리l 나중에 ( )이 변경될 때 최대한의 융통성이 생긴다. ❖ ( )은 장소가 바뀌거나 시간의 흐름에 따라 변경될 수 있다.❖ ( )에 민감하지 않은 기법이 바람직하며 ( )의 변경은 시스템의 일부매개변수를 재정의할 수 있으면 좋다.❖ 예l CPU를 계속 점유하는 것을 방지하기 위해 Timer 사용 ( )l 특정 사용자에게 타이머를 얼마나 오랫동안 설정할 것인지 결정 ( )Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.412.41Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 42
구현 (Implementation)❖ 다양성l 초기 운영체제는 어셈블리 ( )로 구현l 그 후에 Algol과 PL/1같은 시스템 프로그래밍 ( ) 사용l 현재는 C, C++ 사용❖ 실제는 ( )를 혼합 사용l 하위 수준은 어셈블리어l 중요 부분은 Cl 시스템 프로그램은 C, C++, PERL, Python과 같은 스크립트 ( )❖ 고급 ( )(High-level Language)로 된 운영체제l 코드 작성이 빠르며, 간결하고, 이해하기 쉽고 디버그도 쉽다.l 다른 하드웨어로 이식이 쉽다 (easier to port).l 느리다 (slow)❖ Emulation으로 운영체제를 다른 하드웨어에서 수행되는 것도 가능하다Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.422.42Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 43
( ) 구조 (structure)❖ 범용 ( )는 매우 큰 프로그램이다❖ 다양한 방법으로 ( )의 구성을 할 수 있다❖ General-purpose OS is very large program❖ Various ways to structure onesl Simple structure – MS-DOSl More complex -- UNIXl Layered – an abstractionl Microkernel -MachOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.432.43Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 44
간단한 구조 -- MS-DOS✓ Monolithic Structure❖ MS-DOS – 최소의 공간에 최대의( )을 제공하도록 작성l 모듈로 제대로 분할되지 않음l MS-DOS가 구조를 갖추고 있지만, 인터페이스와 ( ) 계층이 잘분리되지 않음• BIOS (Basic Input/Output System)▪ Initialization, runtime services for OS and Program• Unified Extensible Firmware Interface (UEFI) is a successor to BIOSOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.442.44Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 45
좀더 복잡한 구조 - UNIX❖ ( )의 UNIXl 하드웨어 기능의 제약l ( ) UNIX는 제한적인 구조를 가졌다.l UNIX 운영체제는 두 가지 부분으로 분리 시스템 프로그램 커널(kernel)– 시스템 콜 인터페이스 아래와 물리적 하드웨어 위에 있는 모든 것– 파일 시스템, CPU 스케줄링, 메모리 관리와 다른 운영체제기능들을 제공 : 한 계층에서 많은 기능을 제공함Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.452.45Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 46
전통적인 UNIX 시스템 구조 (p91)단순하지도 않지만 계층 ( ) 없는 형태Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.462.46Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 47
( )적 접근 (Layered Approach)❖ 운영체제는 여러 개의 ( )(layer, level)으로 구분l 각 ( )은 하위 ( ) 위에 만들어짐l 최하위(( ) 0) ( )은 하드웨어l 최상위 ( )(( ) N)은 사용자 인터페이스❖ 모듈화 함으로, 각 ( )은 하부 ( )의 함수(오퍼레이션)와 서비스만을사용한다l 설계, 구현과 디버깅 간단❖ 효율성이 낮다Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.472.47Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 48
마이크로 ( ) 시스템 구조 (Microkernel System Structure)❖ ( )이 커져 관리가 어려워져 가능한 많은 기능을 ( )에서 사용자 공간으로옮겨 ( )을 최소화❖ Mach : 카네기 멜론 대학교에서 개발한 첫 번째 microkernel l Mac OS X ( )(Darwin)은 부분적으로 Mach에 기초함❖ 사용자 모듈 간의 통신은 message passing을 사용한다❖ 장점:l 마이크로( )은 확장하기 좋음l 새로운 하드웨어에 이식이 쉽다l 신뢰성 향상 (( ) 모드가 작다)l 보안성 향상❖ 단점l 사용자와 ( ) 간의 통신으로 인한 성능 오버헤드Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.482.48Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 49
( ) 시스템 구조ApplicationProgramFileSystemDeviceDriverusermodemessage passingmessagesmessagesInterprocessCommunicationmemorymanagmentmicrokernelhardwareCPUschedulingkernelmodeOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.492.49Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 50
( ) (Modules)❖ 대부분의 현대 운영체제 시스템은 적재 가능한 ( ) (LKM, Loadable Kernel Modules)로 구현한다l 객체 지향 기법 사용l 각 핵심 컴포넌트가 분리되어 있음l 각 ( )이 알려진 인터페이스를 사용하여 다른 ( )과 통신l 각 ( )은 필요한 시점에 커널 내에 적재❖ 대체로, 계층 구조와 비슷하나 융통성이 있음l Linux, Solaris, Mac OS XOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.502.50Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 51
모듈화 ( )의 예 : SolarisOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.512.51Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 52
하이브리드 시스템 (Hybrid Systems)❖ ( )의 현대 운영체제는 순수 한가지 모델만을 사용하지 않는다l 혼용 구조는 여러 기법을 사용하여 성능, 보안, 사용성 요구를 해결한다❖ Linux와 Solaris의 커널은 단일구조(monolithic)이지만, 함수의 동적 적재는모듈화 기법을 사용한다❖ 윈도우도 ( )이 단일구조이지만, 다른 서브시스템의 특징에 따라마이크로커널을 채택Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.522.52Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 53
Mac OS X Structure❖ 애플 Mac OS X는 혼용으로, 계층구조를 사용하고, Aqua 사용자인터페이스와 Cocoa 프로그래밍 환경을 사용한다l ( ) 구성 : Mach 마이크로 ( ), BSD Unix 일부, 입출력 도구, 동적 적재모듈인 ( ) 확장graphical user interfaceAquaapplication environments and servicesJavaCocoaQuicktimeBSDkernel environmentMachBSDI/O kitkernel extensionsOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.532.53Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 54
iOS❖ iPhone, iPad를 위한 애플 모바일 운영체제l Mac OS X 커널에 기초한 ( ) 구조l OS X 애플리케이션을 네이티브 모드로 지원하지 않는다 다른 CPU 구조에서도 실행된다 (ARM 대 Intel)l 앱 개발을 위한 Cocoa Touch는 Objective-C를 위한 APIl 그래픽, 오디오, 비디오를 위한 Media services ( )l Core services가 클라우드 컴퓨팅과 데이터베이스 제공Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.542.54Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 55
Android Architecture (구조)❖ Open Handset Alliance (Google 주도)에서 개발 : 오픈 소스❖ IOS와 유사한 계층 구조❖ Linux 커널을 기초로 수정l 프로세스, 메모리, 장치 드라이버 ( ) 제공, 파워 ( ) 추가❖ 실행환경이 핵심 라이브러리 집합과 Dalvik 가상 머신 포함ApplicationsApplication FrameworkLibrariesAndroid runtimeSQLiteopenGLCore LibrariessurfacemanagermediaframeworkwebkitlibcDalvikvirtual machineLinux kernelOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.552.55Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 56
운영체제 디버깅 (Operating-System Debugging)n Debugging은 오류나 bugs를 발견하고 고치는 행위이다n 운영체제는 오류 정보를 포함하는 log files 을 생성한다n 애플리케이션이 죽으면 프로세스의 메모리를 ( )한 코어 덤프(core dump)를 생성한다n 운영체제가 죽으면 커널 메모리를 ( )한 비정상 종료 덤프(crash dump)를생성한다n 성능 조정(performance tuning)은 시스템 성능을 최적화한다l 분석을 위해 기록된 시스템 동작의 추적 목록(trace listings)을 사용한다l 통계적인 경향을 찾기 위해 프로파일링(Profiling)은 주기적으로 명령어포인터를 채취한다Kernighan’s Law: “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.562.56Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 57
Performance Tuning❖ ( ) 현상을 제거하여 성능을향상시킨다❖ 운영체제는 시스템의 행동을계산하고 알려주는 도구를 제공해야한다❖ 예로, UNIX의 “top” 프로그램 또는Windows Task ManagerOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.572.57Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 58
Linux Performance : exampleOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.582.58Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 59
Linux Performance : exampleOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.592.59Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 60
DTracen DTrace tool in Solaris, FreeBSD, Mac OS X allows live instrumentation on production systemsn Probes fire when code is executed within a provider, capturing state data and sending it to consumers of those probes n Example of following XEventsQueued system call move from libc library to kernel and backOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.602.60Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 61
Dtrace (Cont.)n DTrace code to record amount of time each process with UserID 101 is in running mode (on CPU) in nanosecondsOperating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.612.61Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 62
운영체제 생성 (Operating System Generation)❖ 운영체제는 같은 종류의 어떤 기계에서도 수행되도록 설계된다; 운영체제는특정한 컴퓨터 사이트에 대해 ( )되어야(configure) 하는데 이 절차를운영체제 생성(System Generation)이라고 한다❖ SYSGEN 프로그램은 하드웨어 시스템의 구체적인 ( )에 관한 정보를얻는다l 특정한 시스템에 맞추어 컴파일된 커널 또는 튜닝된 시스템을 만드는데사용l 한 개의 일반적인 커널보다 더 효율적인 코드를 생성할 수 있다Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.622.62Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 63
시스템 부트 (System Boot)❖ 시스템에 전기가 들어오면, 고정된 ( ) 위치에서 실행이 시작된다l 펌웨어(firmware) ROM(Read Only Memory)이 초기 부팅 코드를 가지고있다❖ 운영체제를 하드웨어가 시작할 수 있도록 하드웨어에게 알려야 한다l ROM 또는 EPROM(Erasable Programmable ROM)에 있는 bootstrap loader라 불리는 작은 코드가 커널을 찾아서 ( )에 적재하고 커널을구동시킨다l 두 단계로 나눠지는 경우도 있음- ROM의 특정한 위치에 있는부트블록(boot block)이 ( )에 로드되고 이것이 디스크에서부트스트랩 로더를 ( )에 적재한다❖ GRUB(GRand Unified Bootloader) : Linux 시스템을 위한 오픈소스부트스트랩 프로그램❖ 커널이 적재되어 시스템이 실행(running)되게 된다Operating System Concepts – 10th EditionOperating System Concepts – 10th Edition1.632.63Silberschatz, Galvin and Gagne ©2018Silberschatz, Galvin and Gagne ©2018
slide 64
End of Chapter 2Operating System Concepts – 10th EditionSilberschatz, Galvin and Gagne ©2018
답지
1번 답: 구조
2번 답: 운영체제
3번 답: 방법
4번 답: 프로그램
5번 답: 명령어
6번 답: 입출력
7번 답: 파일
8번 답: 오류
9번 답: 자원
10번 답: 보호
11번 답: 명령어
12번 답: 명령
14번 답: 가지
15번 답: 터치스크린
17번 답: 고급
18번 답: 공통
19번 답: 파일
21번 답: 반환
22번 답: 시스템
23번 답: 관계
24번 답: 레지스터
25번 답: 매개변수
26번 답: 스택
27번 답: 프로세스
28번 답: 파일
29번 답: 획득
30번 답: 허용
31번 답: 윈도우
32번 답: 표준
33번 답: 하나
34번 답: 프로세스
35번 답: 시스템
36번 답: 라운드
37번 답: 정보
38번 답: 로더
39번 답: 시작
40번 답: 목표
41번 답: 정책
42번 답: 언어
43번 답: 운영체제
44번 답: 기능
45번 답: 최초
46번 답: 구조도
47번 답: 계층
48번 답: 커널
49번 답: 마이크로커널
50번 답: 모듈
51번 답: 방식
52번 답: 대부분
53번 답: 커널
54번 답: 계층
55번 답: 관리
56번 답: 캡처
57번 답: 병목
62번 답: 구성
63번 답: 메모리