컴퓨터 & 코딩/CS

[혼공학습단 10기][혼공컴운] 운영체제의 큰 그림

구로그 2023. 7. 11. 14:25
728x90
✏️ (시스템) 자원: 프로그램 실행에 마땅히 필요한 요소들
운영체제: 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
✏️ 커널 영역 kernel space: 컴퓨터가 부팅될 때 운영체제가 적재되어 실행되는 영역
사용자 영역 user space: 응용 프로그램이 적재되는 영역 (커널 영역을 제외한 나머지) 

 

 

✅ 운영체제의 역할

- 메모리 자원 관리: 실행할 프로그램을 메모리에 적재, 실행되지 않는 프로그램을 메모리에서 삭제

- 최대한 공정하게 여러 프로그램에 CPU 자원을 할당

- 응용프로그램과 하드웨어 사이에서 응용 프로그램에 필요한 자원 할당

- 응용 프로그램이 올바르게 실행되도록 관리 

 

 

 

1️⃣ 커널 - 운영체제의 심장 

- 운영체제의 핵심 서비스 담당 

- 종류: 그래픽 유저 인터페이스(GUI / 그래픽을 기반으로 컴퓨터와 상호작용할 수 이있는 인터페이스), 커맨드 라인 인터페이스(CLI / 명령어를 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스)

❗️사용자 인터페이스 : 사용자가 컴퓨터와 상호작용할 수 있는 통로. 커널에 포함되지 않음. 

 

 

 

2️⃣ 이중모드와 시스템 호출 

- 사용자가 실행하는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지(오직 자신을 통해서만 접근하도록)하여 자원을 보호. 

 

- 이중모드: CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식. 

1) 사용자 모드: 운영체제 서비스를 제공받을 수 없는 실행 모드 ( → 커널 영역의 코드를 실행할 수 없는 모드) 하드웨어 자원에 접근하는 명령어를 실행할 수 없다. (예: 응용프로그램) 

2) 커널 모드: 운영체제 서비스를 제공받을 수 있는 실행 모드 ( → 커널 영역의 코드를 실행할 수 있는 모드) 자원에 접근하는 명령어를 비롯한 모든 명령어를 실행가능. (예: 운영체제) 

 

- 시스템 호출 System call: 사용자 모드의 프로그램이 커널 모드로 전환되기 위해 운영 체제에 요청을 보내는 것 (소프트웨어 인터럽트)

❗️응용 프로그램은 실행 과정에서 빈번하게 시스템 호출을 발생시키고 사용자 모드와 커널 모드를 오가며 실행된다. 

 

 

 

3️⃣ 운영체제의 핵심 서비스

- 프로세스 관리: 다양한 프로세스들을 일목요연하게 관리하고 실행

❗️일반적으로 CPU는 한 번에 하나의 프로세스(실행 중인 프로그램)만 실행 가능하기 때문에 프로세스들을 조금씩 번갈아가며 실행한다. 

 

- 자원 접근 및 할당: 프로세스들이 사용할 자원에 접근하고 조작함으로써 프로세스에 필요한 자원을 할당

  • CPU 스케줄링 (어떤 프로세스부터 CPU를 이용하게 할 것인지, 얼마나 오래 이용하게 할것인지)
  • 새로운 프로세스가 적재될 때마다 어느 주소에 적재해야 할지 결정. 
  • 인터럽트 서비스 루틴 제공하여 입출력 작업 수행 
  • 파일 시스템 관리

 

 


 

가상머신

- 소프트웨어 적으로 만들어낸 가상 컴퓨터

- 새로운 운영체제와 응용 프로그램을 설치하고 실행할 수 있다. 

- 가상머신 또한 응용 프로그램(사용자 모드)

- 하이퍼바이저 모드: 가상머신을 위한 모드. 가상머신 내 운영체제 서비스를 제공한다. 

 

 

반응형