Introduction to Operating Systems
1. Introduction to Operating Systems
컴퓨터는 문제를 풀기위한 하드웨어와 소프트웨어, 데이터로 구성된 시스템
combination of hardware, software and data which are used to solve problem of human beings
하드웨어 구성요소
- CPU(Central Processing Unit)
컴퓨터에서 연산을 처리하는 유닛. - Memory
RAM 접근속도가 빠르지만 휘발성이다.(컴퓨터 종료시 사라짐) DISK 영구적으로 저장이 가능하지만 접근속도가 느리다. CACHE CPU 내부에 있는 저장공간 REGISTER
2. How hardware devices work together
High Level Program을 바로 Disk에 바로 저장할 수 없다. 이유는 CPU가 해석할 수 없는 요소로 구성되어있기 때문이다. 그래서 우리는 CPU가 이해할 수 있는 Low Level Program로 바꿔줘야 하는데, 이 문제를 해결해주는 프로그램을 Compiler라고 한다.
- *High Level Program은 C, Java, Python등으로 작성된 프로그램
- *CPU는 0, 1로 구성된 binary code만 이해가능하다.
RAM vs DISK
RAM | DISK | |
속도 | 빠르다. | 느리다. |
비용/GB | 비싸다. | 저렴하다. |
모든 프로그램이 RAM에서 동시에 실행되기는 어렵다.
(보통 RAM용량 보다 Disk의 용량이 크기도 하고..?)
프로그램이 실행되고 CPU에서 연산을 수행할때 RAM에서 먼저 해당 요소들을 찾는다.
RAM에서 발견된다면 해당 요소들로 연산을 수행한다.
발견할 수 없다면 Disk에서 RAM으로 해당 요소들을 복사한다.
3. Need for Operating Systems
1. CPU는 다음 연산에 필요한 프로그램이 무엇인지 예상할 수 없다.
2. Disk에 저장된 모든 프로그램을 RAM에 옮겨 놓을 수 없기 때문에 어떤 프로그램을 RAM에 옮겨 놓을지 관리해줄 프로그램이 필요하다.
이러한 문제를 해결해주는 프로그램이 OS이다.
따라서 OS는 다음의 기능을 갖는다.
1. 어떤 Process 연산을 먼저 처리할지 선택한다. (Short-Term Scheduler)
2. 어떤 프로그램을 RAM에 옮겨둘지 선택한다. (Long-Term Scheduler)
...
정리하자면 OS는 컴퓨터 시스템의 Resource Allocator & Resource Manager라고 할 수 있다.
*Resource는 컴퓨터 시스템의 구성요소 (CPU, RAM, GPU, Mouse, Keyboard...)
4. How Input and Output devices work together
컴퓨터 시스템과 연결된 I/O device는 관련된 버퍼를 갖게 된다.
계산기를 실행해서 2+3을 실행한다고 하면,
1. 키보드에 "2"를 누르면(I/O Event), 키보드버퍼에 2가 저장된다.
2. 해당 버퍼는 RAM에 있는 계산기 프로세스로 값을 보낸다.
3. 다음으로 키보드에 "3"을 누르면(I/O Event) 키보드 버퍼에 3이 올라간다.
4. 해당 버퍼는 RAM으로 간다.
5. 이 두 값은 CPU로 이동하고 + 연산에 사용된다.
'OS' 카테고리의 다른 글
CPU Scheduling Algorithms (3) (0) | 2021.12.05 |
---|---|
CPU Scheduling Algorithms (2) (0) | 2021.11.28 |
CPU Scheduling Algorithms (1) (0) | 2021.11.28 |
Operating System Concepts (0) | 2021.11.25 |