본문 바로가기

한권떼기/운영체제(Operating System Concepts)

[한권떼기] 운영체제 01번째. 인트로

728x90
반응형

**본 글의 일부분은 서적 'Operating Systems: Three Easy Pieces by Remzi H.Arpaci-Dusseau, Andrea C.Arpaci-Dusseau', 'Operation System Concepts Abraham Silberschatz 외 2' 내의 이미지와 내용을 포함하고 있습니다

 

 

 

운영체제

프로그램의 동작 방식

1. fetch: 프로세스가 메모리로부터 instruction을 가져옴

2. decode: 가져온 instruction이 뭔지 분석함

3. execute: instruction에 해당하는 명령 수행

4. 프로세서가 다음에 수행할 명령어로 이동

 

운영체제는 위과 같은 프로그램 동작, 프로그램간의 메모리 공유, 디바이스 간의 상호작용 등을 가능하게 하여,

-> 시스템 동작을 정확하고 효율적으로 해주는 역할을 함

-> CPU, 메모리, disk같은 자원을 관리하는 resource manager의 역할을 함

 

 

 

Virtualization (가상화)

OS가 프로세서, 메모리, 디스크 등의 물리적 자원을 가상의 자원으로 바꿈

 

CPU 가상화

한정적인 CPU를 마치 여러 개의 CPU가 있는 것처럼 보여주는 방식

-> 여러 프로그램이 마치 한 번에 실행되는 것 처럼 느껴짐

 

Memory 가상화

제한된 메모리를 마치 더 큰 메모리를 가지고 있는 것처럼 보여주는 방식

가상화된 메모리를 virtual memory, 실제 메모리를 physical memory라고 함

각 프로그램이 자신만의 메모리를 가진 것처럼 착각하게끔 OS가 메모리 가상화를 함

-> 제한된 physical memory를 여러 프로그램이 공유

 

 

 

System call

user가 직접 건드리면 위험할 수 있는 부분(프로그램 동작, 메모리와 디바이스 접근 등...)을 system call을 이용하여 OS에게 전달하여 안전하게 처리함

API, standard library 등을 통해 user가 system call을 간편하게 호출 가능

 

 

 

동시성 문제 해결

동시성 문제

공통된 자원에 대해서 동시에 엑세스를 처리하면 생길 수 있는 문제.

특히 다른 스레드와 메모리를 공유하게 되는 멀티스레드 환경에서 문제가 됨.

동기화나 Semaphore 등의 방법을 사용하여 해결

 

 

 

Persistence

데이터를 영구적으로 저장하기 위해

하드웨어적으로는 SSD, HDD와 같은 I/O 디바이스를 사용하고,

소프트웨어적으로는 이러한 디스크를 관리하는 파일 시스템을 구성하여 비휘발성 데이터를 저장 및 관리

데이터 저장을 위한 OS의 역할

새로운 데이터를 저장할 디스크를 결정하고 I/O 리퀘스트 처리

파일 시스템에서 생길 수 있는 충돌들을 journaling, copy-on-write 방식을 이용하여 해결

 

 

 

 

 

 

 

728x90
반응형