일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컴퓨터공학 #c #c언어 #문자열입력
- HTML #CSS
- 잔
- 컴퓨터공학 #자료구조 #스택 #c++ #알고리즘 #백준문제풀이
- BOJ #컴퓨터공학 #C++ #알고리즘 #자료구조
- 컴퓨터공학 #Java #자바 #클래스 #객체 #인스턴스
- Today
- Total
영벨롭 개발 일지
[운영체제][OS]Operating Systems, 운영체제 들어가기 본문
- Program이 실행되면 무슨 일이 생길까?
본격적으로 OS에 들어가기 앞서, Program이 실행되면 무슨 일이 생기는지 알아보겠습니다.
하나의 Running Program은 여러 instruction들을 실행 시킵니다.
즉, 프로그램 실행은 Instruction들의 실행이라고도 할 수 있습니다.
과정은 다음과 같습니다.
1. Processor(CPU)가 memory로부터 하나의 instruction으로 Fetch 합니다.
2. Decode: 이 instruction이 어떤 것인지 알아냅니다.
3. Execute: 두 수의 연산이나 memory access, 조건문 체크, 함수로 이동 등등 여러 동작을 실행합니다.
4. 실행이 끝나면 Processor는 다음 instruction으로 이동하여 위 과정을 반복합니다.
Fetch -> Decode -> Execute -> Fetch -> ...
- Operating System, OS의 역할
1. Program이 쉽게 돌아갈 수 있도록
2. 여러 program들이 memory를 공유하도록
3. 여러개의 program이 device와 interact 할 수 있도록
즉, OS는 system이 올바르고 효율적으로 작동할 수 있도록 해줍니다.
- Program과 HW 사이에서 중재, System Call
Program (APP) |
OS (Linux, Mac OS, Windows, Android, ..) |
HardWare (CPU, DRAM, SSD, ...) |
위 표와 같이 사용자(Program)은 HW에 직접 접근할 수 없습니다.
이때 사용자는 System Call(프로그램 실행, 메모리 접근, 디바이스 접근 등)을 통해 OS에게 무엇을 할지 전달합니다.
그럼 OS는 사용자 대신 HW에 접근합니다. 즉, OS는 Program과 HW 사이에서 중재하는 역할을 합니다.
- Resource Manager
만약 특정 시간에 CPU 내에서 하나의 program만이 실행될 수 있다면 어떻게 될까요? 오직 그 program만 작동하고 다른 program은 작동할 수 없게 됩니다. 굉장히 비효율적이겠죠?
때문에, 여러 개의 많은 Program들이 동시에 작동하기 위해선 CPU를 공유해야 합니다.
또한 여러 program들이 동시에 자신의 instruction들과 data에 접근하고 Device들에 접근하기 위해선 Memory와 Disk를 공유해야 합니다.
바로 OS가 CPU와 memory, Disk와 같은 하드웨어를 여러 프로그램이 공유하도록 해줍니다.
때문에, OS는 resource(CPU, memory, disk와 같은 하드웨어) manager라고도 불립니다.
그렇다면 어떻게 OS가 resource들을 공유하도록 할까요?
여기서 바로 Virtualization의 개념이 등장합니다.
- Virtualization
Virtualization이란 말 그대로 가상화하는 것을 말합니다.
OS는 CPU, Memory, Disk와 같은 physical resource를 가져와 이것을 가상의 형태로 만들어줍니다.
이로서 각 program은 physical resource를 마치 혼자 사용하는 것처럼 느끼게 됩니다.
때문에, OS는 virtual machine이라고도 불립니다.
각 하드웨어 Virtualization은 추후에 자세히 다루겠습니다.
'CS > 운영체제' 카테고리의 다른 글
[운영체제] Limited Direct Execution(LDE) 메커니즘 (0) | 2022.04.01 |
---|---|
[운영체제]Process API 공부: fork, wait, exec (0) | 2022.04.01 |
[운영체제][OS]프로세스 Process란? (0) | 2022.03.04 |