**본 글의 일부분은 서적 '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 방식을 이용하여 해결
'한권떼기 > 운영체제(Operating System Concepts)' 카테고리의 다른 글
[한권떼기] 운영체제 08번째. Thread와 Lock, Semaphore (0) | 2022.03.29 |
---|---|
[한권떼기] 운영체제 08번째. 메모리 스와핑과 페이지 교체 알고리즘 (0) | 2022.03.29 |
[한권떼기] 운영체제 05번째. 멀티프로세서 스케쥴링 (0) | 2022.03.29 |
[한권떼기] 운영체제 04번째. CPU 스케쥴링 (0) | 2022.03.28 |
[한권떼기] 운영체제 02번째. 프로세스와 프로세스 API (0) | 2022.03.28 |