코학다식
[OS] Boot, 운영체제의 구조, VM 본문
Operating System
chapter 1-2 (4)
System Boot
- 부팅(Booting)이란 커널을 로딩함으로써 컴퓨터를 시작하는 것을 말한다.
- 시스템에서 파워가 초기화되면, Bootstrap loader가 위치한, 고정된 메모리 위치(ROM)에서 실행이 시작된다.
- 보통 두 단계의 과정을 거친다. (mother board - hard disk)
운영체제 서비스
-
운영체제의 서비스 중 한 집합은 사용자에게 유용한 기능을 제공한다.
-
유저 인터페이스(User interface) - 거의 모든 운영체제가 사용자 인터페이스(UI)를 가진다.
- Command-Line Interface(CLI), Graphic User Interface(GUI), Batch
-
프로그램 실행 - 시스템은 메모리에서 프로그램을 읽어서 실행시키고, 실행을 끝낼 수 있어야 한다.
-
I/O 작업
-
파일 시스템 조종 - 프로그램은 파일, 디렉토리를 읽고 쓰고 만들고 삭제하고 찾고 파일 정보, 권한 관리 등의 목록을 만들 수 있을 필요가 있다.
-
커뮤니케이션 - 프로세스는 같은 컴퓨터나 네트워크상의 컴퓨터들에서 정보를 교환할 수 있다.
-
에러 탐지
-
자원 할당 - 다수의 유저가 있거나 다수의 작업이 동시에 시행될 때, 자원은 각각에게 할당되어야 한다.
-
Accounting - 어떤 사용자가 어떤 종류의 컴퓨터 자원을 얼마큼 사용하는지 추적한다.
-
보호와 보안
-
운영체제 구조(MS-DOS)
- MS-DOS는 가장 적은 공간에 최상의 기능성을 제공하도록 쓰였다.
- 모듈로 나누어지지 않는다.
- 잘 설계된 구조를 가지고 있지 않다.
운영체제 구조(UNIX)
- 크게 두 부분으로 나누어진다.
- 시스템 프로그램
- 커널
- 시스템 콜 인터페이스 아래와 물리적 하드웨어 위의 모든 것을 구성한다.
- 파일 시스템, CPU 스케줄링, 메모리 관리, 다른 운영체제 기능을 제공한다.
운영체제 구조(Microkernel)
- 위의 유닉스와 같은 거대한 구조(monolithic)는 유연성이 떨어지고 상당한 메모리를 필요로 한다.
- 그래서 커널에서 많은 것을 "사용자" 공간으로 이동시킨다.
- 사용자 모듈 사이에서 메시지 전송을 통해 커뮤니케이션이 이루어진다.
- 장점
- microkernel을 확장하기 쉬워짐
- 새로운 아키텍쳐에 운영체제를 옮기기 쉬워짐
- reliability의 증대
- 더 안전함
- 그러나 커뮤니케이션으로 인해 성능 오버헤드가 발생할 수 있다.
운영체제 구조(Modules)
- 현재 대부분의 운영체제는 커널 모듈을 적용한다.
- 객체 지향 접근법을 사용
- 각각의 주요 컴포넌트들 분리
- 이미 알고 있는 인터페이스를 통해 각각 통신
- 운영체제의 일부 기능을 필요에 따라 넣었다 빼는 것과 같은 개념이다.
- 유연하고 효율적이다.
Virtual Machines(VM), 가상머신
- 가상 머신(Virtual Machine)은 한 컴퓨터의 하드웨어를 여러 다른 실행 환경에 추상화한다. 이는 각각의 분리된 실행 환경이 각각의 컴퓨터에서 실행되고 있는 것과 같아 보이게 한다.
- 가상 머신의 장점
- 각각의 가상 머신이 다른 가상 머신과 분리되어 있어 자원을 완전히 보호한다.
- 운영체제 연구와 개발에 유용하게 사용될 수 있다. 복사 또한 가능하다.
- CPU의 효율적 사용으로 자원의 최적화가 가능하다.
-
Native VM vs Hosted VM
-
Native VM: 가상 머신 모니터(Virtual Machine Monitor, VMM)이 하드웨어 바로 위에서 작동한다.
-
Hosted VM: VMM이 원래 원래 컴퓨터의 운영체제 위에서 돌아간다.
-
'Fundamentals > OS' 카테고리의 다른 글
[OS] 프로세스 생성과 종료 (0) | 2019.09.26 |
---|---|
[OS] 프로세스와 프로세스 스케줄링 (0) | 2019.09.24 |
[OS] System Call (0) | 2019.09.17 |
[OS] 운영체제의 구조와 운영체제 보호를 위한 작업들 (0) | 2019.09.10 |
[OS] 운영체제의 정의와 Interrupt (0) | 2019.09.08 |
Comments