-
[운영체제] 2. OperatingSystem Structures 운영체제 구조Computer Science/OS 2022. 9. 22. 23:29728x90
1장 복습)
운영체제의 기본 기능 : CPU 스케줄링, 메모리 관리, 파일 관리, 입출력 관리
* CPU 스케줄링 :메인 메모리에 적재된 여러 프로그램 중 하나의 프로그램 선택하여 실행하는 것
운영체제가 제공하는 서비스 (Operating System Services)
- 사용자 인터페이스(User Interface) : CLI, GUI, Batch
- 프로그램 실행 (Program execution)
- 입출력 연산 (I/O operations)
- 파일 시스템 조작 (File-System manipulation)
- 통신 (Communications) : 방법) 공유 메모리, 메시지 패싱
- 에러 검출 (Error detection) : CPU, 메모리, IO장치, 사용자 프로그램에서의 오류에 대한 OS의 적절한 조치 및 디버깅
- 자원 할당 (Resource allocation)
- 보호 및 보안 (Protection and security) : 적법한 자원 접근 허용. 바이러스, 웜 및 외부 침입 방지

사용자와 운영체제간 인터페이스 (User Operating System Interface)
- CLI(Command Line Interface)
- GUI(Graphical User Interface)
- Touchscreen Interface
시스템 콜 (System Calls)
OS가 제공하는 서비스에 대한 프로그래밍 인터페이스. (표준 C, C++ 라이브러리 사용)
System Calls은 응용프로그램이 운영체제와 통신하기 위한 방법.


사용자 프로세스 응용프로그램이 직접 메모리 접근 X
system call을 통해 User mode에서 kernel 모드로 전환 OS의 처리하에 안전하게 운영체제 제공 서비스 처리 가능
사용자 프로그램이 직접 system call을 사용하는 것은 아님.
표준 C 라이브러리 통해서 시스템 콜 인터페이스 사용 (C 컴파일러가 해당 운영체제의 system call로 변환)
ex. printf() -> 컴파일 -> IO system call 변환
시스템 콜을 사용하는 방법 (API-System Call - OS relationship)

system call은 일종의 SW 인터럽트 방식으로 수행한다.
표준 C 라이브러리의 open() 함수 사용 -> kernel mode로 변경
-> open()에 해당하는 ISR 수행 -> 수행 결과 반환 -> User mode로 변경

System Programs - Utility

연관된 여러 시스템 호출을 사용하여 고급 서비스 제공 프로그램 (시스템 콜보다 사용이 편리)
자주 사용하는 시스템 서비스를 제공하는 시스템 프로그램을 이용하는 것이 편리하다.
운영체제 설계 및 구현 (OS Design and Implementation)
OS는 HW 유형에 따라 달라진다.
- 하드웨어의 선택 : 대형 시스템, 소형 모바일 시스템
- 시스템 유형 : 싱글 유저, 멀티유저, 실시간 시스템
운영체제의 개인 사용자 목적, 시스템의 목적
- OS 사용자 목적 : 사용하기 편리, 배우기 쉬움, 신뢰성, 안전, 빠른 속도
- OS 시스템 목적 : 설계 및 구현의 편리, 유지보수 용이, 융통성 (기능 추가 및 변화에 용이), 신뢰성, 효율성
OS 설계 구현에서의 중요 분리 원칙
- Policy (정책) : 보다 상위 레벨, 무엇을 할지.
- Mechanism (매커니즘) : 어떻게 구현할 것인지.
메커니즘과 정책을 분리하는 것은 중요한 원칙이다. 설계 정책이 변경되었을 때 융통성(flexibility)을 최대화시킨다.
운영체제 구현 (OS Implementation)
처음에는 어셈블리어로 구현 -> 최근에는 C, C++ 이용
하드웨어 관련된 부분 -> 어셈블리어
하드웨어 무관한 부분 -> C언어 (이식성 향상, 유지보수 용이)
운영체제 구조 (Operating System Structure)
범용 OS는 매우 큰 프로그램 -> 구조를 가진다.
- 단순 구조 (Simple structure) - MS DOS
- 하나의 큰 커널 존재 (One Big Kernel) -> 전통적 UNIX
- 작은 커널 시스템 (Microkernel) - Mach
단순구조 (Simple Structure) - MS DOS
HW 제한적. 구조 단순
MS-DOS : 메모리 작음. 최적화. 모듈화 X

응용프로그램이 하드웨어 드라이브 직접 접근 가능. -> 속도 향상 -> 오류 발생 가능 (시스템 불안정 요인)
Monolith Kernel - UNIX (전통적 UNIX)
당시 HW 성능 제한되어 구조가 단순 -> 커널에 모든 기능 구현
UNIX의 구성
- System programs 시스템 프로그램
- The kernel 모든 기능이 구현된 거대 커널
커널이 매우 복잡
- 한 레벨에서 모두 구현되어 효율적(동일 주소 공간 안에서 메시지 전달이 효율적)
- 유지보수 및 기능 추가가 어렵다. (에러 수정 어려움)
Microkernel System Structure (최근의 구조)
- 사용자 구역(user space)으로 대부분 기능 이동 -> 커널 기능 최소화
- OS 서비스는 기능별로 모듈화, 사용자 주소 공간에서 실행시킴
- 커널은 하드웨어 종속 부분, 서버 프로세스 간 통신 등 단순 기능 담당
- 사용자 모듈 간에 메시지 전송을 통해 통신
장점
- 모듈 간 상호 의존성 낮음, 서비스 추가/삭제 용이
- 기능 향상의 용이, 이식성, 신뢰성, 보안 향상
단점
- 사용자 공간과 커널 공간 간의 통신 오버헤드 발생


Solaris Modular Approach 운영체제 발생 (Operating System Generation) - SYSGEN
운영체제는 다양한 하드웨어에서 실행되도록 디자인되었음.
SYSGEN은 특정 하드웨어 구성에 맞추어 운영체제를 구성하고, 최적화하는 프로그램
-> OS 설치 시에 사용됨
SYSGEN : 다양한 하드웨어 구성에 맞춰 맞춤형 운영체제 만들어 설치하는 것
<주요 용어 정리>
1. 운영체제가 제공하는 서비스 나열하기
- 사용자 인터페이스(User Interface)
- 프로그램 실행 (Program execution)
- 입출력 연산 (I/O operations)
- 파일 시스템 조작 (File-System manipulation)
- 통신 (Communications)
- 에러 검출 (Error detection)
- 자원 할당 (Resource allocation)
- 보호 및 보안 (Protection and security)
2. ____ provide an interface to the services made available by an operating system.
____는 운영 체제에서 사용할 수 있는 서비스에 대한 인터페이스를 제공합니다.
=> 시스템 콜 (system call)
3. ____, also known as system utilities, provide a convenient environment for program development and execution.
____는 시스템 유틸리티라고도 하며, 프로그램 개발 및 실행을 위한 편리한 환경을 제공합니다.
=> 시스템 프로그램 (system program)
4. One important principle is the separation of ____ from ____. ____ determine how to do something; ____ determine what will be done.
한 가지 중요한 원칙은 ___와 __를 분리하는 것이다. ___는 어떤 일을 어떻게 할 것인지 결정하고, ___는 어떤 일을 할 것인지를 결정한다.
=> 메커니즘 (mechanism), 정책 (Policy)
5. Mach used the ____ approach. This method structures the OS by removing all nonessential components from kernel and implementing them as system and user-level programs.
Mach는 ____ 접근법을 사용했습니다. 이 방법은 커널에서 필수적이지 않은 모든 구성 요소를 제거하고 시스템 및 사용자 수준의 프로그램으로 구현함으로써 OS를 구성한다.
=> 마이크로 커널 (micro-kernel)
6. An operating system must be configured or generated for each specific computer site, a process sometimes known as ____
운영 체제는 각 특정 컴퓨터 사이트에 대해 구성되거나 생성되어야 합니다. 이 프로세스는 ___라고도 합니다.
=> SYSGEN
728x90반응형'Computer Science > OS' 카테고리의 다른 글
[운영체제] 6. Process Synchronization 프로세스 동기화 (2) 2022.11.11 [운영체제] 5. Process Scheduling 프로세스 스케줄링 (0) 2022.10.08 [운영체제] 4. Multithreaded Programming 멀티 스레드 프로그래밍 (0) 2022.09.28 [운영체제] 3. Process Concept 프로세스 개념 (2) 2022.09.23 [운영체제]1.introduction 운영체제 소개 (2) 2022.09.08