[OS] 운영체제 큰 그림 그리기

Yuri JI·2022년 12월 28일
0

cs스터디

목록 보기
4/9

개요

운영체제 = 사용자가 실행하는 프로그램을 위한 프로그램
how? 사용자가 실행하는 응용 프로그램의 올바른 실행을 돕고 자원을 할당

운영체제에 도움을 요청한다는 것은 운영체제 코드를 실행한다는 말과 동일하다.
ex. 하드디스크에 데이터 저장하는 응용프로그램 실행하고자하면, OS에게 부탁해야한. 이 말은 OS 커널 영역 내의 하드 디스크에 데이터를 저장하는 코드를 실행한다는 것이다.

이중모드

cpu가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식이다.

  • 사용자 모드
    커널 영역의 코드를 실행할 수 없는 모드로, 일반적인 응용 프로그램의 실행 방식이다.
    자원에 접근할 수가 없다.

  • 커널 모드
    커널 영역의 코드를 실행할 수 있는 모드로 운영체제가 커널 모드로 실행된다.
    자원에 접근할 수 있다.

시스템 호출(System Call)

사용자 모드에서 커널 모드로 전환하는 소프트웨어 인터럽트

사용자 모드로 실행되는 응용프로그램은 OS가 제공하는 인터페이스인 시스템콜을 통해서 커널모드로 전환하여 자원을 사용할 수 있다.


출처: https://cloudstudying.kr/lectures/189

예시)
1) 하드디스크에 데이터를 저장하는 응용프로그램을 실행하면 사용자 모드로 실행되어 직접 하드디스크에 접근할 수 없다.
2) 시스템 콜을 발생시켜 커널모드로 전환한다.
3) 운영체제 내의 하드디스크에 데이터를 저장하는 코드를 실행한다.
4) 3)과정이 끝나면 다시 사용자 모드로 복귀한다.

운영체제의 핵심 서비스와 앞으로 공부할 내용

1) 프로세스 관리

  • 프로세스 동기화
  • 교착상태

프로세스: 실행 중인 프로그램
메모리에는 여러 프로세스가 적재되지만, CPU는 한 번에 하나의 프로세스만 실행할 수 있다. 그래서 여러 프로세스를 동시에 실행하기 위한 관리가 필요하다.

2) 자원 접근 및 할당

  • CPU를 공정하게 할당하기위한 CPU 스케줄링
  • 프로세스에게 메모리를 할당하는 방법, 메모리가 부족할 경우 해결법
  • 인터럽트 서비스 루틴

모든 프로세스는 실행을 위한 자원(CPU, 메모리, I/O)이 필요하다.

3) 파일 시스템 관리
보조기억장치 속 데이터를 어떻게 파일과 디렉토리로 관리하는지

메모

OS가 제공하는 서비스 중 UI는 커널에 포함되지 않음.

cpu의 실행모드가 사용자모드인지 커널모드인지는 플래그 레지스터 내의 슈퍼바이저 플래그를 보면 확인할 수 있다.

커널이란
커널은 운영체제 중 항상 메모리에 올라가 있는 운영체제의 핵심 부분이다.
하드웨어와 응용 프로그램 사이의 인터페이스 역할을 하며 컴퓨터 자원들을 관리하는 역할이다.

하이퍼바이저 모드
가상화를 지원하는 CPU는 커널모드와 사용자모드 이외에 하이퍼바이저모드를 지원한다.
왜? 가상머신에서 실행하는 프로그램은 사용자 모드로 작동하고, 가상머신에 설치된 운영체제 역시 사용자 모드로 작동하면 커널 모드로의 전환이 어렵다.

profile
안녕하세요 😄

0개의 댓글