1장 Introduction
운영체제가 일하는 3가지 카테고리
가상 기계 (가상화)
물리적인 자원을 ‘가상’ 형태로 전환
때로는 운영체제를 가상머신 이라 부르기도 함API 제공자
사용자가 프로그램 실행, 메모리 할당, 파일 접근.. 등의 작업을 요청할 수 있도록
OS는 사용자에게 API를 제공
운영체제는 시스템 콜 제공자원 관리
프로세스 2개가 자원에 동시 접근할 때 제한하고 한정
OS 역할
- 정확한 동작
- 편리하고 효율적인 사용 지원
정책과 기법을 사용하여 위 역할을 수행
CPU가 어떻게 자원을 가상화 하는가 ?
가상화
하나의 CPU에서 매우 많은 시스템이 동작하는데
CPU가 무한개처럼 보이는듯한 환상이 드는 효과병행성
공유자원, 임계영역 관리영속성
각 프로세스가 작업한 결과물 저장
가상화
CPU 가상화
물리적인 하나의 CPU로 매우 많은 수의 가상 CPU가 존재하는 듯한 환상
많은 프로그램들이 동시에, 한 번에 수행되는 것처럼 실행 가능
메모리 가상화
물리적 메모리 = 바이트의 배열
목적 1. 프로그래머가 메모리 관리를 효율적으로 하려고 2. 다른 프로세스 간의 영향을 줄이기 위해
C언어에서 *p = 0 과 같이 가능한 이유가
p와 같은 변수가 독립적인 가상 주소 공간을 가지기에 가능함
(가상화된 각각의 공간)
이는 메모리 가상화가 가능하기 때문
메모리 가상화가 되지 않으면,
같은 힙 영역을 공유하므로 값 변화 시 다른 프로세스에 영향을 준다.
병행성 (Concurrency)
무엇인가 동시에 여러 개가 처리될 때 동작
전역변수에 100000씩 더하는 2개의 스레드를 돌리면
200000이 되어야 하는데, 예상하는 결과값이 나오지 않는다.
count++ 는 3가지의 명령어로 수행을 함
영속성
DRAM과 같은 장치는 데이터를 휘발성으로 저장
메모리의 데이터는 쉽게 손실될 수 있음
Persistence (영구) | Volatile (휘발)
HDD, SSD와 같은 하드웨어가 필요
디스크 기록 시 OS가 하는 일
- 파일정보 (아이노드) 크기 증가
- 파일 데이터 증가 (데이터 블록 증가)
둘 중 하나는 변경 됐는데, 갑자기 전원이 꺼지면 ?
ex) 아이노드가 10 → 19로 증가했는데, 파일 데이터는 증가가 안됨
이러면 9바이트가 가비지로 참 → OS는 여기서 10으로 해줘야 함
'🖥️ Computer Science > Operating System' 카테고리의 다른 글
[OS] MLFQ (Multi-Level Feedback Queue) (0) | 2024.05.03 |
---|---|
[OS] 운영체제 스케줄링 개요 (2) | 2024.05.02 |
[OS] Limited Direct Execution (1) | 2024.05.01 |
[OS] 프로세스 API in POSIX (0) | 2024.04.30 |
[OS] 프로세스 개요 (1) | 2024.04.29 |