728x90
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] 운영체제 스케줄링 개요 (1) | 2024.05.02 |
[OS] Limited Direct Execution (1) | 2024.05.01 |
[OS] 프로세스 API in POSIX (0) | 2024.04.30 |
[OS] 프로세스 개요 (0) | 2024.04.29 |