Search
Duplicate
🍎

[운영체제] 개요 - 3가지 이야기

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
운영체제
태그
운영체제
Scrap
8 more properties

운영체제 개요

“운영체제 : 아주 쉬운 세가지 이야기”를 읽으면서 핵심 내용을 정리하였습니다. 이화여대 반효경 교수님의 운영체제 강의를 듣고 복습 차원에서 책 한권을 완독해보고자 합니다.

1. 운영체제의 역할

여러 프로그램을 동시에 실행 시킬 수 있게 도와줌
프로세스간에 메모리 공유를 가능하게 해줌
외부 디바이스와 상호작용을 가능하게 해줌
이외 등등… 프로세스가 물리적 자원 위에서 잘 작동할 수 있도록 도와 주는 역할
→ 운영체제가 시스템을 사용하기 편리하게 하기 위해 사용하는 중요한 3가지 특성에 대해서 앞으로 공부하게 될 것!

2. 운영체제 3가지 이야기

1) 가상화(virtualization)

프로세서, 메모리, 디스크와 같은 물리적 자원을 사용하기 쉽도록 가상 형태의 자원을 생성한다. 따라서 운영체제를 가상 머신(virtual machine)이라고 부르기도 한다.
사용자(응용프로그램)가 운영체제에서 제공하는 기능을 사용할 수 있도록 운영체제는 사용자에게 API를 제공 하는데 이를 시스템 콜(system call)이라고 한다.
API (application programming interface) - 소프트웨어간에 서로를 이어 주는 인터페이스. 두 소프트웨어 구성요소가 서로 통신할 수있도록 해주는 메커니즘.

a. CPU 가상화

하드웨어의 도움을 받아 운영체제가 시스템에 수많은 가상 CPU가 존재하는 것처럼 환상을 만들어 내어 여러 프로그램이 동시에 실행 될 수 있도록 하는 것을 CPU 가상화라고 한다.
다수의 프로그램이 동시에 실행될 경우 어떤 프로그램을 먼저 실행 시킬 것인지 정하는 운영체제 정책과 구현 기법에 대해 앞으로 학습한다.

b. 메모리 가상화

컴퓨터에서 실제 물리적 메모리의 모델은 단순한 바이트의 배열이다.
각 프로세스들은 물리메모리를 다른 프로세스들과 공유하는 것이 아니라 마치 자신만의 독립적인 메모리 공간을 가지고 있는 것 처럼 인지하는데 이는 운영체제가 메모리 가상화를 해주기 때문이다.
각 프로세스들은 자신 만의 가상 주소 공간을 가지게 되고 운영체제는 이를 물리 메모리에 매핑(mapping)한다.
하나의 프로세스에서 하는 메모리 연산은 다른 프로세스에게 영향을 주지 않는다.
프로그램 입장에서는 자신만의 물리메모리를 가지고 있는 듯한 환상을 주지만 실제 운영체제가 물리메모리라는 공유 자원을 관리하고 있는 것이다.

2) 병행성(concurrency)

운영체제 자체도 프로그램이고 여러 응용프로그램을 관리하는 과정에서 병행성 문제가 발생할 수 있다.
멀티쓰레드 환경에서 또한 병행성 문제가 발생할 수 있고 이는 쓰레드는 동일한 메모리 공간을 공유하기 때문이다. 동일한 메모리 공간내에서 임계영역에 동시에 접근하려고 할 때 큰 문제가 발생할 수 있고 이를 방지할 수 있는 방법에 대해서 학습할 것이다.

3) 영속성(persistence)

메모리와 같이 휘발성 데이터가 아닌 영속적인 데이터를 관리 할 수 있도록 운영체제가 도와주고 있다.
파일 시스템이라는 운영체제 소프트웨어의 일부가 디스크라는 물리적 자원을 관리하는 것을 담당하고 있다.
새로운 데이터를 디스크의 어디에 저장해야할지 결정 및 데이터의 상태를 여러 자료구조를 사용하여 추적해야한다.
데이터가 새롭게 쓰일때 저널링이나 쓰기 시 복사를 사용하여 데이터 수정시 오류가 발생하더라도 정상적으로 복구 될 수 있도록 도와 준다.