코딩

컴퓨터 공학 기초 2

Frontend 2022. 8. 1. 23:18

2-1. 운영체제

  • 하드웨어에게 일을 시키는 주체.
  • 목적 :
    • 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원을 관리.
    • 자원의 효율적 관리를 위해 스케줄링 기능을 제공.
    • 사용자와 시스템 간 편리한 인터페이스 제공.
    • 각종 하드웨어와 네트워크를 관리하고 제어.
  • 시스템 자원 관리
    • 응용 프로그램이 하드웨어에게 일을 시키도록 도와줌.
    • 시스템 자원을 관리하는 주체 :
      • 프로레스 관리(CPU)
      • 메모리 관리
      • I/O(입출력) 관리 (디스크, 네트워크 등)

출처 : 코드스테이츠

  • 응용 프로그램 관리
    • 응용 프로그램의 실행을 관리하고, 응용 프로그램이 시스템 자원을 사용할 수 있도록 권한과 사용자를 관리한다.
    • 응용 프로그램이 운영체제와 소통하기 위해서는, 운영체제가 응용 프로그램을 위한 인터페이스(API)를 제공해야 한다.
    • 시스템 콜(System call) : 응용 프로그램이 시스템 자원을 사용할 수 있도록, 운영 체제 차원에서 다양한 함수를 제공하는 것.

 

2-2. 프로세스

  • 실행 중인 하나의 애플리케이션을 일컫는다.
  • 사용자가 애플리케이션을 실행하면, 운영체제로부터 메모리를 할당받아 애플리케이션 코드를 실행한다.

구성 요소

  • 유저 메모리 영역 관리
  • 핸들 테이블
  • 독립적인 메모리 공간

특징

  • 자원 소유의 단위
    : 각각의 프로세스는 자신의 실행 이미지 로드와 실행에 필요한 추가적인 메모리 공간을 가지고 있어야 한다.
  • 디스패칭의 단위
    : 프로세스는 CPU의 자원을 일정 기간 할당받아 명령어를 실행하는 것이며, 운영 체제는 여러 개의 프로세스가 병렬적으로 실행되도록 사용 시간을 골고루 배분해야 한다. 하나의 프로세스에서 여러 개의 디스패칭 단위가 실행되도록 하고 있으며, 이러한 디스패칭 단위를 '스레드'라고 부른다.

상태

  • 실행(Run) : 프로세스가 프로세서를 차지하여 서비스를 받고 있는 상태.
  • 준비(Ready) : 실행될 수 있도록 준비되는 상태.
  • 대기(Waiting) : CPU 의 사용이 아니라 입출력 사건을 기다리는 상태.

 

2-3. 스레드 (Thread)

  • 명령어가 CPU를 통해 수행되는 객체의 단위
  • 스레드는 같은 프로세스에 있는 자원과 상태를 공유한다.
  • 하나의 스레드가 수정한 메모리는 같은 메모리를 참조하는 스레드에 영향을 미친다.

출처 : 코드스테이츠

  • 목적 : 하나의 프로세스 내에서 여러 개의 루틴을 동시에 실행시켜서 수행 능력을 향상시키기 위해 스레드를 사용한다. 즉, 여러 개의 작업 단위로 구성된 프로그램에서 요청을 동시에 처리하기 위해서 사용된다.
  • 구성 요소 :
    • 가상 CPU
    • 수행 코드
    • 처리 데이터
  • 특징 : 
    • 한번에 하나씩 명령들을 수행한다.
    • 각 스레드마다 call stack이 존재한다.
    • 스레드는 다른 스레드와 독립적으로 동작한다. 

 


Reference

https://parksb.github.io/article/5.html

 

🦕 공룡책으로 정리하는 운영체제 Ch.1: Overview

Abraham Silberschatz의 Operating System Concepts는 운영체제의 바이블로 불린다. 이번에 운영체제 수업을 들으면서 Operating System Concepts 9th Edition의 내용을 정리해보기로 했다.Ch.1은 책 전체 내용이 담겨있

parksb.github.io