Computer Science/Operating System

[OS] 운영체제 - 가상화, 병행성, 영속성

kyxxn 2024. 4. 28. 18:43
728x90

1장 Introduction

운영체제가 일하는 3가지 카테고리

  1. 가상 기계 (가상화)
    물리적인 자원을 ‘가상’ 형태로 전환
    때로는 운영체제를 가상머신 이라 부르기도 함

  2. API 제공자

    사용자가 프로그램 실행, 메모리 할당, 파일 접근.. 등의 작업을 요청할 수 있도록

    OS는 사용자에게 API를 제공
    운영체제는 시스템 콜 제공

  3. 자원 관리
    프로세스 2개가 자원에 동시 접근할 때 제한하고 한정

OS 역할
- 정확한 동작
- 편리하고 효율적인 사용 지원

정책과 기법을 사용하여 위 역할을 수행

CPU가 어떻게 자원을 가상화 하는가 ?

  1. 가상화
    하나의 CPU에서 매우 많은 시스템이 동작하는데
    CPU가 무한개처럼 보이는듯한 환상이 드는 효과

  2. 병행성
    공유자원, 임계영역 관리

  3. 영속성

    각 프로세스가 작업한 결과물 저장

가상화

  1. CPU 가상화

    물리적인 하나의 CPU로 매우 많은 수의 가상 CPU가 존재하는 듯한 환상

    많은 프로그램들이 동시에, 한 번에 수행되는 것처럼 실행 가능

  1. 메모리 가상화

    물리적 메모리 = 바이트의 배열

     목적
     1. 프로그래머가 메모리 관리를 효율적으로 하려고
     2. 다른 프로세스 간의 영향을 줄이기 위해

C언어에서 *p = 0 과 같이 가능한 이유가

p와 같은 변수가 독립적인 가상 주소 공간을 가지기에 가능함

(가상화된 각각의 공간)

이는 메모리 가상화가 가능하기 때문

메모리 가상화가 되지 않으면,

같은 힙 영역을 공유하므로 값 변화 시 다른 프로세스에 영향을 준다.

병행성 (Concurrency)

무엇인가 동시에 여러 개가 처리될 때 동작

전역변수에 100000씩 더하는 2개의 스레드를 돌리면

200000이 되어야 하는데, 예상하는 결과값이 나오지 않는다.

count++ 는 3가지의 명령어로 수행을 함

영속성

DRAM과 같은 장치는 데이터를 휘발성으로 저장

메모리의 데이터는 쉽게 손실될 수 있음

Persistence (영구) | Volatile (휘발)

HDD, SSD와 같은 하드웨어가 필요

디스크 기록 시 OS가 하는 일

  1. 파일정보 (아이노드) 크기 증가
  2. 파일 데이터 증가 (데이터 블록 증가)

둘 중 하나는 변경 됐는데, 갑자기 전원이 꺼지면 ?

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