KKanging

[운영체제] 운영체제란 본문

cs/운영체제

[운영체제] 운영체제란

천방지축 개발자 2024. 4. 28. 17:48

운영체제란

무엇을 책임지고 운영하는가

운영체제역할

  • 파일 시스템 관리
  • 프로그램 실행자
  • 병렬처리(프로세스의 자원 스케쥴링)
  • 자원관리
프로그램을 쉽게 실행하고
프로그램 간의 메모리 공유를 가능하게 하고,
장치와 상호작용을 가능하게 하는 소프트웨어가
os 이다

가상 머신

운영체제는 위의 기능을 수행하기 위해 
물리적인 자원들(프로세스,메모리,또는 디스크와 같은)을 사용이 편리한 가상의 형태의 자원을 생성한다.

운영체제는 그래서 가상머신이라고도 불린다.

API

예
POSIX API 
- i/o
- process / thread 
- communication

운영체제에게 위 같은 기능을 제공해달라고 요청하는 것
운영체제는 위 같은 기능을 편리하게 사용할 수 있도록 API를 제공한다

운영체제는 응용프로그램이 사용가능한 수천개의 시스템 콜을 제공한다.

자원 관리자

가상화는 많은 프로그램들이 CPU를 공유하여, 동시에 실행될 수 있게 한다.
프로그램들이 각자 명령어와 데이터를 접근할 수 있게 한다.
메모리 영역 관리

자원 공유 관리 등등

이때 자원은 cpu 메모리 디스크 등등이 있다.이러한 이유로 os 는 자원 관리자라고 불린다.

❑OS의역할과책임은명확하다 ▪ 시스템의정확한동작과 ▪ 편리하고효율적인사용지원

❑OS는어떻게그를달성할것인가? ▪ 정책(Policy)과 기법(Mechanism)

운영체제 핵심 개념 3가지

  • 가상화
  • 병행성
  • 영속성

가상화

  • cpu 가상화
물리적으론 하나의 cpu가 사용되지만 많은 프로그램이 실행되는 것처럼 할 수 있다.
이를 cpu가상화라 한다.
  • 메모리 가상화
다른 프로세스에서 동시 실행 중인데 메모리의 주소가 

동일한 주소를 사용하고 있다.

이유는 2가지로 볼 수 있다.

1. memory 가상화 

2. memory 겹쳐서 사용

memory 가상화의 경우 자원을 가상 모델을 제공해서
마치 논리적으로 메모리를 독단적으로 각 프로세스가
사용하는 것처럼 제공하기 때문에(물리적으론 따로 제공)
동일한 주소를 출력할 수 있다.
겹쳐서 사용하였다면 1씩 증가 시킬떄 11 22 가 아닌 12345
이런씩 증가가 되기 때문에 가상화인 것을 볼 수 있다.

가상 주소 공간으로 물리적인 메모리 공간을 사용하는 것을 볼 수 있다.

병행성

VM으로 프로세스가 여러개 실행될 때 프로세스의 결과 같은
데이터를 서로 주고 받을 때 병행성을 이용한다.

1. communication (pipe , socket) : 결과 값을 주고 받기 좋음
2. shared memory , api  : 중간 값을 주고 받기 좋음

communication은 vm끼리의 데이터 전달 시에 사용한다.

보통 shared memory를 미리 만들어 놓고 vm 을 배정할 때 
sm 을 연결해놓는다.

SM 은 communication 과 달리 접근 시 주의 해야한다.

동시성 문제가 생길 우려가 있기 때문

동시성 문제의 해결은 OS 의 역할이다.

영속성

DRAM 같은 메모리는 휘발성 방식으로 저장하기 때문에 메모리의 데이터는 쉽게 손실될 수 있다.
그래서 운영체제는 하드 디스크나 장기간 보존할 정보를 저장한다.
디스크를 관리하는 운영체제 소프트웨어를 파일 시스템이라 한다.

설계목표

❑적절한요약(Build upabstraction) : ❑고성능고효율(Provide high performance) ❑보호(Protection between applications) ❑고신뢰성(High degree of reliability) : 꺼지지 않은 소프트웨어 ❑Other issues ▪ Energy-efficiency ▪ Security ▪ Mobili : 이동성