0. 운영체제란?

EEEFFEE·2023년 7월 6일
0

운영체제

목록 보기
1/8

23.07.06 최초 작성

1. 운영체제의 목적

  • 어플리케이션이 하드웨어를 효율적으로 사용할 수 있도록 관리하는 프로그램

대부분의 컴퓨터는 다음과 같은 구조로 구성되어 있으며 CPU는 프로세서, 디바이스는 저장장치, I/O 장치, 네트워크 사용을 위한 랜카드 등이 있다.
운영체제는 이런 하드웨어를 다음 형태로 각 하드웨어를 제어한다.

프로세서메모리저장장치I/O 장치네트워크
프로세스&메모리가상 메모리볼륨, 디렉토리, 파일파일파일

2. 기능에 대한 설명

2.1 인터럽트

연산을 담당하는 장치인 CPU(프로세서)는 버스를 통해 메모리, 기타 장치와 연결되어 있다. 각 장치가 사용 될 시 CPU의 인터럽트 핀에 버스(interrupt request line)를 통해 전압이 걸리며 특정 프로그램이 실행된다. 이 때 이 동작을 "인터럽트" 라고 하며 실행되는 프로그램을 "interrupt service routine", "interrupt handler routine", "interrupt handler" 라고 한다.

인터럽트 발생 시 메모리에 저장된 인터럽트 서비스 루틴의 주소값을 통해 interrupt handler을 실행한다. 이 주소값을 저장하는 메모리상의 공간을 "Interrupt Vector", "Interrupt Descriptor Table(IDT)" 이라 한다.

외부장치와 CPU간의 인터럽트 동작은 다음과 같이 일어난다.

2.2 Storage(저장장치)

  1. 메인 메모리
  • CPU가 직접 접근 가능한 유일한 저장장치
  • Random Access, byte addressable(바이트 단위 데이터가 인출됨)
  • 휘발성
  1. 외부 저장장치
  • 메인 메모리의 확장된 개념이며 비휘발성 저장장치
  • 블록단위로 데이터가 인출됨

3. 시스템 보호

운영체제는 동작 모드를 분리해(user mode / kernel mode) 특정 인스트럭션이 특정 모드에서 실행되는 것을 막는다. 이 특정 인스트럭션을 "Previleged instruction" 이라 한다.
유저 모드에서 특정 인스트럭션을 실행하려고 할 경우 "Exception" 이 발생한다. 익셉션은 하드웨어에서 발생하는 신호에 의해 동작하는 인터럽트와 달리 소프트웨어에서의 동작에 의해 동기적으로 발생한다. 인터럽트와 마찬가지로 익셉션일때 실행하는 프로그램인 "Exception Handler" 가 있다.

  • user mode : 사용자 애플리케이션이 실행되는 모드로 시스템 접근에 제약이 있어 system call을 통해 하드웨어에 접근
  • kernel mode : 리눅스 커널이 실행되는 모드로 커널함수를 직접 호출해 시스템 정보를 획득 가능하며 레지스터에 접근 가능

3.1 모드 변경

유저 모드에서 커널 모드로 변경되는 경우는 System call, interrupt 이 발생했을 때이다.

0개의 댓글