운영체제 (Operating System) [구조와 스케쥴링]

seonja kim·2021년 10월 4일
0
post-thumbnail

의의

  • 컴퓨터 소프트웨어와 하드웨어의 기초

역할

  1. 시스템자원 관리자
  2. 사용자와 컴퓨터 간의 커뮤니케이션 지원
  3. 컴퓨터 하드웨어와 프로그램 제어

각 역할에 대해 하나씩 살펴보자.

시스템자원 관리자

  • 시스템 자원은 컴퓨터 하드웨어이다.
    - CPU, Memory : 얼마나 사용해야하는지 스스로 결정할 수 없음
    - I/O Devices : 스스로 화면에 표시할 수 없음
    - 저장매체 (SSD, HDD) : 저장될 주소와 공간을 스스로 결정할 수 없음

그러므로 이 모든 활동을 운영체제가 제어하게 된다.

대표적인 운영체제

  • Windows OS, Mac OS, UNIX OS가 있다.
  • UNIX OS : 가장 최신의 운영체제라고 볼 수 있고 대표적으로 LINUX OS가 UNIX 계열 운영체제이다.

컴퓨터 하드웨어와 프로그램을 제어

  • 프로세스 관리
  • 주기억장치 관리
  • 파일 관리
  • 디스크 관리
  • 입출력 관리
  • 네트워킹, 보호/보안
    의 기능을 통해서 프로그램과 하드웨어를 제어하게 된다.

운영체제와 응용 프로그램 관리

응용 프로그램은 우리가 디바이스 내에서 사용하는 파워포인트, 엑셀과 같은 어플리케이션을 의미한다.

운영체제와 응용 프로그램의 관계

운영체제는

  • 응용 프로그램을 관리
    - 실행
    - 권한 관리 (관리자 권한으로 실행하는 것과 같은 활동)
    - 사용자 관리
  • 비정상적인 프로그램 작동을 관리하게 됨 (예시 - 오류가 작동한 프로그램 자체만 종료하는 것과 같은 활동)
  • 권한과 사용자 관리
  • 비정상적인 응용 프로그램 활동을 관리

결과적으로
사용자가 사용하는 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고 지원하는 소프트웨어

응용 프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스) 관계

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

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

운영체제는 사용자 인터페이스 제공

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

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

  • API (Application Programming Interface)
    - 함수로 제공
    • ex) open()
  • 라이브러리 형태로 제공

시스템 콜

  • 운영체제가 각 기능을 사용할 수 있도록 시스템 콜이라는 명령, 함수를 제공
  • API 내부는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분
  • POSIX API, Windows API가 있다.
  • 커널모드에서만 실행 가능한 기능들이 있다.
  • 커널모드로 실행하려면 반드시 시스템콜을 거쳐야 한다.
  • 시스템콜은 운영체제가 제공함

운영체제 구조

CPU Protection Rings

  • 사용자 모드 : 응용 프로그램이 사용함
  • 커널 모드 : OS가 사용함, 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드
  • 함부로 응용 프로그램이 전체 컴퓨터 시스템을 제어할 수 없다.

정리

  • 운영체제는 시스템콜을 제공
  • 프로그래밍 언어별로 운영체제 기능 활용을 위한 시스템콜을 기반으로 한 API 제공
  • 응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램 작성
  • 시스템콜이 호출되면 커널모드에서 해당 명령이 실행되고 다시 응용 프로그램으로 돌아오는 구조임

프로세스 스케쥴링

배치 처리 시스템

  • 여러 프로그램을 순차적으로 실행하면 아래와 같은 단점
    - 시간이 오래 걸리는 프로그램이 있을 경우, 해당 프로그램 이후의 프로그램 실행에 시간이 많이 소요
    - 성격이 다른 프로그램을 동시에 실행 불가능
    - 여러 사용자가 동시에 하나의 컴퓨터 자원을 나눠 사용하지 못함 (다중 사용자 지원)

이러한 문제때문에 멀티 프로그래밍/ 시분할 시스템이 발생

시분할 시스템

  • 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템

멀티 프로그래밍

  • 단일 CPU에서 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템

멀티 태스킹과 멀티 프로세싱 차이

  • 멀티 태스킹 : 단일 CPU에서 여러 응용 프로그램을 동시에 실행하는 것처럼 보이게 하는 시스템
  • 멀티 프로세싱 : 여러 CPU에 하나의 프로그램을 병렬로 실행해서 실행속도를 극대화하는 시스템

멀티 프로그래밍 목적

  • 최대한 CPU 활용성을 높이는 것이 목적
  • 응용 프로그램을 짧은 시간 안에 실행 완료할 수 있음
    - 응용 프로그램은 실행 중간에 파일을 읽거나 프린트를 하거나 하는 다른 작업과 연계된 경우가 대부분이므로 멀티 프로그래밍 방식을 이용해 자원을 최대한 활용
profile
Adventurer

0개의 댓글