운영체제 - 운영체제란 무엇인가

yjkim·2023년 9월 1일
0

운영체제

목록 보기
1/7

ch 1. 운영체제란 무엇인가

Operating System (OS) Definition

resource allocator

  • 운영체제는 컴퓨터의 모든 자원을 관리하는 시스템을 의미
  • 효율적이고 공정한 자원 사용을 위해 시스템간 충돌하는 요청들을 중재함

control program

  • 컴퓨터의 오류 및 부적절한 사용을 방지하기 위해 프로그램 실행을 제어

"Everything a vendor ships when you order an operating system"

운영체제의 정해진 정의는 없다. 그러나 전공자 사이의 "일반적인" OS의 정의는 다음과 같다.

  • OS = Kernel + System programs

Kernel 이란 OS의 기본 알고리즘들을 구현해둔 로직으로, 컴퓨터 상에서 항상 실행되고 있는 유일한 프로그램이다 (나머지는 system program 혹은 application program). 우리는 이 Kernel 에 집중할것

Computer System

컴퓨터 시스템의 4대 구성요소

  • User
    컴퓨터 사용자

  • System and application programs
    컴퓨터 소프트웨어의 두가지 종류이다. 시스템 프로그램에는 운영체제를 비롯한 하드웨어와 소프트웨어간의 상호작용을 하는 프로그램이 포함되며, 어플리케이션 프로그램에는 사용자의 작업에 활용되는 프로그램들이 포함된다. 엑셀이나 크롬같은 프로그래임이 이에 속함

  • 운영체제

  • 하드웨어
    cpu, 메모리, 디스크, 마우스, 키보드 같은 컴퓨터의 물리적인 구성요소
    오직 os 만이 하드웨어와 직접적으로 통신할 수 있다. os는 소프트웨어와 하드웨어 사이를 중재함.

Computer Startup

bootstrap program

  • 컴퓨터가 켜질때 가장 먼저 실행되는 프로그램, firmware 라고도 불리며시스템의 모든 부분을 초기화함. (컴퓨터 로딩되는 중에 f12 (맞나?) 연타하면 켜지는 창이 펌웨어임)
  • 일반적으로 ROM or EPROM에 적재됨 -> 신뢰성과 영구성과 보안성을 위해
  • OS 커널을 로드하고 OS를 시작함.

Computer System Organization

  • CPU : 연산 수행
  • 입출력 장치 (디스크, 모니터, 프린터, 키보드 등등..)는 devide controller에 의해 관리된다. devide controller의 종류로는 디스크 컨트롤러, usb 컨트롤러 등이 있음.
  • memory

하나, 혹은 하나 이상의 cpu들은 공통 버스 (Common bus) 를 통해 공유 메모리 (Shared memory)에 접근할 수 있음.
cpu와 device들은 병렬적으로 실행되고 있고, 메모리 접근을 위해 서로 경쟁하고 있다.

만약 메모리 접근 과정에서 충돌이 일어난다면?
--> memory controller 가 접근을 동기화한다.

Interrupts and Interrupts Handling

Interrupt

  • 컴퓨터 시스템에서 발생하는 이벤트 또는 신호로, 현재 실행 중인 프로그램의 흐름을 중단하고 특정한 처리를 실행하는 메커니즘
  • 인터럽트는 소프트웨어, 하드웨어 두 가지 기반으로 동작한다.
  • trap과 exceoption은 소프트웨어 인터럽트의 예시
  • trap은 의도적으로, exception은 비정상적인 상황에서 (ex 0으로 나누기, 메모리 오버플로우) 등에서 발생하는 인터럽트
  • 운영체제는 인터럽트 기반으로 동작 (interrupt driven)

cpu는 두가지 상태를 가진다

  • User process executing : 사용자의 응용프로그램이 cpu에서 실행되고 있는 상태
  • I/O interrupt processing : 입출력 (I/O) 작업 중에 발생한 인터럽트가 처리되고 있는 상태

CPU는 I/O 인터럽트가 발생하면 현재 실행 중인 작업을 일시 중단하고 I/O 인터럽트를 처리하기 위한 인터럽트 서비스 루틴(Interrupt Service Routine, ISR)을 실행함. (ISR은 추후공부)

User mode and Kernel mode

Mode bit

  • cpu는 modebit을 통해 커널모드와 유저모드를 구별 -> 위험한 연산은 커널 모드에서만 실행하게끔
  • 0이면 커널모드 1이면 유저 모드

유저 모드

  • 중요하지 않은 연산만 실행
  • 만약 중요한 연산을 해야한다면, system call을 통해 운영체제에 요청.
    모드 비트를 0으로 변경함

커널 모드

  • 운영체제가 cpu에 대한 제어권을 갖음
  • system call을 처리한 후 mode bit 을 1로 변경

System calls

컴퓨터 프로그램이 운영체제와 상호작용 하고 운영체제의 서비스들을 이용할 수 있도록 하는 프로그래밍 인터페이스 또는 인터페이스 함수들의 집합.
Window API, POSIX API, Java API for JVM 등이 이에 속함

API –System Call –OS Relationship

C 프로그램에서 printf() 를 호출하면, 이는 write() 시스템 콜을 호출하는 것과 같다.

운영체제 view 요약

다음은 프로세스에 대해서 공부 ㄱ

profile
We may throw the dice, but the Lord determines how they fall

0개의 댓글