728x90
주니온님의 인프런 '운영체제 공룡책 강의' 와 'Operating System Concepts, 9th edition '을 참고하여 작성하였습니다.
2-1. 운영체제의 개념
운영체제는 컴퓨터에서 항상 수행되는 프로그램으로, 일반적으로 "커널(kernel)" 이라고 불린다.
따라서 커널이 OS이고, OS의 핵심이다.
2-2. 컴퓨터 시스템의 구조
부트스트랩?
보통 컴퓨터를 킬 때, 부팅한다고 한다. 부팅이라는 말은 부트스트랩에서 나온 말이다.
- 부트스트랩은 컴퓨터가 켜지자마자 가장 처음으로 하는 일이며, 메모리에 운영체제를 로딩하는 일을 말한다.
- 흔히 말하는 펌웨어가 부트스트랩이다.
우리가 컴퓨터를 키면 메모리에는 아무것도 없는 상태이다. 왜? 컴퓨터의 주기억장치는 대부분 RAM이기 때문. 따라서 ROM(비휘발성 메모리)에 저장되어있는 OS를 메모리(RAM)에 로딩해주는 것이 필요하다.
RAM vs ROM
- RAM : Ramdom Access Memory로 휘발성 메모리, CPU의 운영체제(OS)와 응용프로그램, 현재 사용 중인 데이터를 유지하고 있는 메모리
- ROM : Read Only Memory로 비휘발성 메모리
왜 컴퓨터의 주기억장치는 RAM일까?
- ROM을 쓴다고 가정, ROM은 데이터에 접근하는데 오랜 시간이 걸리기 때문! 따라서 ROM은 보조기억장치로 사용된다.
인터럽트
하드웨어가 어떤 액션을 했는지 CPU에 알려주는 것
예를 들어 키보드가 있다고 생각해보자. 키보드가 'a'를 눌렀다는 것을 CPU는 어떻게 알 수 있을까? 이때 인터럽트라는 방법으로 알려준다.
- CPU와 I/O device가 통신하는 방법 중 하나
- CPU에 signal을 보내는 방법 (버스를 통해)
하드웨어는 언제나 인터럽트를 trigger 할 수 있다. (따라서 인터럽트는 하드웨어가 생각하는 거)
인터럽트에는 계층 구조가 있다.
CPU와 I/O device는 동시에 실행될 수 있다.
CPU의 메모리 구조
CPU의 메모리는 용량과 접근속도에 따라 여러개의 계층구조로 이루어져 있다.
- 주기억장치(main memory) : CPU가 direct하게 접근할 수 있다.
- 보조기억장치(secondary storage) : 주기억장치의 보조역할을 하며, 대용량의 데이터 저장과 비휘발성 메모리이다.
- Magnetic disks : HDD
- Electronics disks : SSD
registers?
- 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억 장소이다. 일반적으로 현재 계산을 수행중인 값을 저장하는 데 사용된다. (출처, 위키백과)
MultiProgramming
- 프로세서가 입출력 작업의 종료를 대기할 동안 다른 프로그램을 수행할 수 있도록 하는 것
- CPU의 사용 효율을 높일 수 있다.
- 어떤 프로그램을 먼저 처리할지에 관해 Job Scheduling이 필요하다.
MultiTasking(Time Sharing)
- 하나의 CPU로 여러 작업을 번갈아가며 수행하는 것
- 사용자의 입장에서는 동시에 여러작업을 하는 것 처럼 보이지만, 사실 여러작업을 빠르게 번갈아가면서 수행하는 것임!
- CPU Scheduling이 필요하다 (=Job Scheduling과 유사)
멀티태스킹처럼 하드웨어에도 여러개의 OS를 돌릴 수 있을까?
- H/W OS 사이에 VMM을 끼워넣으면 가능하다.
- 예) VMware와 같은 프로그램을 사용하면 하나의 하드웨어에서 여러개의 OS를 사용할 수 있다.
System Call
- 컴퓨터 응용 프로그램과 OS가 인터페이스 하는 방식
- System Call을 호출하는 것을 API라고 한다.
... 내용 추가 예정
728x90
'Computer Science > 운영체제' 카테고리의 다른 글
1. Introduction (0) | 2021.10.09 |
---|