기타/OS

운영체제 기초 이론

Dev.BeryL 2022. 8. 17. 09:38
728x90

Operating System Or OS

  • 대표적인 운영체제
    • Windows OS, Mac OS, UNIX

 

역할

  • 시스템 자원(System Resource) 관리자
  • 사용자와 컴퓨터간의 커뮤니케이션 지원
  • 응용프로그램 제어

 

시분할 시스템과 멀티 태스킹

  • 응용 프로그램이 CPU를 사용하는 시간을 잘게 쪼개서, 여러 개의 응용 프로그램을 동시에 실행하는 기법
  • 시분할 시스템 : 다중 사용자를 지원하고, 컴퓨터 응답 시간을 최소화하는 시스템
  • 멀티 태스킹 : 단일 CPU에서, 여러 응용 프로그램의 병렬 실행을 가능케 하는 시스템
  • 보통 시분할 시스템 = 멀티 태스킹

 

*멀티프로그래밍 : 최대한 CPU를 많이 활용하도록 하는 시스템

 

응용 프로그램, 운영체제, 컴퓨터 하드웨어 관계

  • 운영체제는 응용 프로그램이 요청하는 메모리를 허가하고, 분배한다.
  • 운영체제는 응용 프로그램이 요청하는 CPU 시간을 제공한다.
  • 운영체제는 응용 프로그램이 요청하는 IO Devices 사용을 허가/제어 한다.

쉘(Shell)

  • 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
  • 쉘은 터미널 환경(CLI)과, GUI 환경 두 종류로 분류

 

운영체제는 응용 프로그램을 위해서도 인터페이스를 제공한다.

  • API 
    • 함수로 제공
    • open()
  • 보통은 라이브러리(library) 형태로 제공
    • C library
  • 시스템 콜
    • 시스템 콜 또는 시스템 호출 인터페이스
    • 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
    • API 내부에는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분

 

CPU Protection Rings

  • CPU도 권한 모드라는 것을 가지고 있다
    • 사용자 모드(user mode by applications) : 응용프로그램이 사용
    • 커널 모드(kernel mode by OS) : 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드, OS가 사용

 

 

프로세스 스케쥴링

 

실제 멀티 태스킹

  • 1000 밀리초(ms) = 1초
  • 10 ~ 20 ms 단위로도 실행 응용 프로그램이 바뀜
  • 사용자에게는 동시에 실행되는 것처럼 보임

프로세스란 ? 

Process - 실행 중인 프로그램을 프로세스라 일컫는다.

  • 프로세스 : 메모리에 올려져서, 실행 중인 프로그램
  • 코드 이미지(바이너리) : 실행 파일, ex) ELF format

 

FIFO 스케쥴러

| 프로세스가 저장매체를 읽는 다거나, 프린팅을 하는 작업 없이, 쭉 CPU를 처음부터 끝까지 사용한다.

  • 가장 간단한 스케쥴러(배치 처리 시스템)
  • FCFS (First Come First Served) 스케쥴러

 

최단 작업 우선(SJF) 스케쥴러

  • SJF(Shortest Job First) 스케쥴러
    • 가장 프로세스 실행시간이 짧은 프로세스부터 먼저 실행을 시키는 알고리즘

 

우선순위 기반 스케쥴러

  • Priority-Based 스케쥴러
    • 정적 우선순위
      • 프로세스마다 우선순위를 미리 지정
    • 동적 우선순위
      • 스케쥴러가 상황에 따라 우선순위를 동적으로 변경
반응형