운영체제란?

컴퓨터 하드웨어를 관리하는 소프트웨어.

하드웨어와 응용 프로그램 사이에서 제어하고 조정하는 역할을 맡는다.

 

즉, 프로그램이 실행되는 환경을 제공한다.

 

다중 프로그래밍이란?

CPU가 항상 한 개는 실행할 수 있도록 프로그램을 구성 -> CPU 이용률을 높인다.

이때 실행 중인 프로그램은 프로세스라고 한다.

 

다중 프로그래밍이 되지 않는 운영체제라면 CPU가 쉬는 상태가 되는 경우가 있을 수 있지만, 다중 프로그래밍이 된다면 여러 프로세스가 돌고 돌면서 CPU가 쉬는 상태가 되지 않는다.

 

다중 태스킹이란?

CPU 스케줄링을 통해 프로세스 간 빠른 응답을 제공하는 다중 프로그래밍의 논리적 확장이다.

 

프로세스란?

운영체제의 기본 작업 단위

더보기

다중 프로그래밍이 되는 운영체제는? 컴퓨터에서 연속적으로 실행하고 있는 프로그램 -> 프로세스

 

프로세스의 특징?

1. 별도의 공간에서 실행되고 다른 프로세스의 자원에 접근 불가

2. 최소 하나의 스레드를 가지고 있다.

 

스레드란?

프로세스의 자원을 이용하는 최소 실행 단위

 

프로세스와 스레드의 차이는?

프로세스는 자원을 공유하지 못하지만, 스레드는 자원을 공유한다.

 

커널이란?

시스템을 완전히 제어하는 운영체제의 핵심 프로그램

컴퓨터 자원들을 관리하는 역할

 

커널모드와 유저모드의 차이는?

커널모드는 모든 컴퓨터 자원에 접근과 명령을 할 수 있다.

유저모드는 사용자가 접근할 수 있는 영역을 지정하고, 컴퓨터 자원에 함부로 침범하지 못한다.

 

하지만 프로그램들이 커널모드에서만 가능한 기능들을 사용하는 기능일 경우일 땐,

운영체제가 해당 프로그램들에게 시스템 콜을 제공해야 한다.

 

시스템 콜이란?

유저모드에서 필요한 기능을 수행하기 위해서 커널모드로 전환하기 위해 필요한 인터페이스

 

시스템 콜의 흐름을 보면

 

  1. 유저모드인 프로세스가 시스템 콜 호출
  2. 고유번호를 할당하고 필요한 기능을 정의
  3. 수행하려는 기능의 시스템 콜 고유번호를 확인하고 기능 수행
  4. 유저모드로 다시 전환
복사했습니다!