[OS] Operating System 01 - Introduction

2023. 12. 27. 00:46CS/OS

시작

 

1학기에 운영체제 수업을 듣기 전에 먼저 운영체제에 대해 예습을 하고 그 과정을 기록하기 위해 시작하였다. 유튜브에 있는 공룡책 강의를 보면서 해당 내용을 정리하면서 배운 내용을 기록하려고 한다.

 

[OS] Operating System 01 - Introduction 

 

운영체제

  • 컴퓨터 내부에서 항상 실행이 된다
  • 윈도우, 리눅스, Mac과 같은 소프트웨어
  • 응용 프로그램 또는 사용자가 컴퓨터 하드웨어를 편리하고 효율적으로 사용하기 위해 시스템 자원을 관리하고 여러 가지 프로그램이 필요로 하는 공통적인 서비스를 제공하는 역할을 한다.
    • 이때 시스템 자원은 메모리, 프로세서 등의 자원을 의미한다.

정보

  • 불확실성을 측정하거나 줄이기위해 사용되는 정량적 표현이다
  • 정보(I)는 사건의 발생확률 P(x)에 반비례한다

  • 최소단위 : bit(binary digit)
  • 처리 : 정보의 상태변환을 통해 정보를 처리한다
    • 0 <-> 1의 변환
  • 부울(boolean) 대수 및 논리 게이트, 회로
  • 정보의 저장과 전송 : 플립-플롭, 데이터 버스

컴퓨터

  • 실제로 정보를 처리하는 기계 
  • 데이터를 조작하고 계산, 저장, 검색 및 통신과 같은 다양한 작업 수행
  • 방대한 양의 데이터를 고속으로 처리할 수 있어서 워드 프로세싱, 게임, 과학 연구 등을 포함해서 광범위한 응용 프로그램에 사용된다
  • 범용성 
    • NOT, AND, OR 게이트만으로 모든 계산을 진행
    • NAND 게이트만으로 모든 계산이 가능
      • NOT AND(보편 게이트) : 들어오는 두 개의 입력값이 모두 True면 False을 출력, 그 외의 경우 True를 출력, AND 게이트의 출력을 거꾸로 생각하면 된다.

0은 False, 1은 True를 의미

  • 계산가능성
    • Turing-computable : 튜링 머신으로 계산가능한 것
    • 정지 문제, Halting Problem : 튜링 머신으로 풀 수 없는 문제

 

  • 폰 노이만 컴퓨터 아키텍처
    • 현대 컴퓨터 설계의 기반이 되는 구조
    • 프로그램을 메모리에 저장하는 구조이며 명령어와 데이터가 같이 메모리에 저장
      • 폰 노이만 병목 
        • 프로세서가 메모리에서 데이터를 가져오는 속도가 프로세서의 처리 속도를 따라가지 못해서 발생하는 현상
    • 컴퓨터는 입력과 출력 장치를 통해 외부와 데이터를 주고받는다
    • 과정
      1. 메모리에서 명령어를 패치한다.
        1. 해당 명령어를 명령어 레지스터에 저장
      2. 명령어를 디코딩한다
        1. 연산에 필요한 데이터도 같이 메모리에서 패치되며 레지스터에 저장이 된다.
      3. 디코딩된 명령어는 실행이 되고 결과는 다시 메모리에 저장이 된다.

폰 노이만 아키텍처와 컴퓨터 시스템의 추상적인 구조

 

 

 

운영체제

 

  • 컴퓨터에서 항상 실행되는 하나의 프로그램이다.
  • 커널
    • 사용자에게 보이지 않지만 시스템 기능 및 응용 프로그램 실행에 필수적이다.
    • 운영체제의 핵심이며 시스템에서 발생하는 모든 것을 완벽하게 제어하는 역할을 한다
    • 하드웨어와 소프트웨어 구성 요소 간의 통신과 같은 시스템 자원을 관리한다
    • 시스템이 켜져 있으면 커널은 항상 실행이 된다. 다른 프로그램이 실행되지 않더라도 커널은 여전히 활성 상태이며 작업 수행을 위해 대기하고 있다.
  • 시스템 프로그램
    • 운영체제의 일부이지만 커널의 일부가 아닌 프로그램을 의미한다
    • 파일관리, 프로세스 관리, 메모리 관리 및 장치 관리와 같은 시스템 관리 작업을 담당한다
      • ex : shell, 파일 관리 도구 및 네트워크 유틸리티를 예로 들 수 있다.
  • 응용 프로그램
    • 응용 프로그램은 특정 사용자 지향 작업을 수행하는 소프트웨어
    • 운영체제에 포함되지는 않지만 커널 및 시스템 프로그램의 지원을 받는다
      • ex : 워드 프로세서, 웹 브라우저, 게임 등

버스

 

  • 다양한 컴퓨터 구성 요소 간의 데이터 전송을 담당하는 통신 시스템
  • 데이터 버스
    • CPU, 메모리, 입출력 장ㅇ치 등 시스템 내의 다양한 구성 요소 사이에 데이터 전송
    • 해당 버스의 크기는 한 번에 전송할 수 있는 데이터의 양을 결정
  • 주소 버스
    • CPU가 메모리 또는 다른 하드웨어 구성 요소의 특정 위치를 지정할 때 사용
    • 해당 버스의 크기는 시스템이 접근할 수 있는 메모리 주소의 범위를 결정
  • 제어 버스
    • CPU가 다른 구성 요소에 제어 신호를 보내는 데 사용
    • 메모리 읽기/쓰기, 인터럽트 요청, 버스 요청 및  버스 부여와 같은 다양한 시스템 제어 활동 포함
  • 다양한 구성 요소가 서로 동기화하여 효율적으로 작동할 수 있도록 도와주는 역할
  • 해당 버스의 속도와 대역폭은 시스템의 전반적인 성능에 영향을 끼침

bootstrap

  • 컴퓨터의 전원이 들어오면 가장 먼저 실행이 되는 프로그램
  • os를 메모리로 로드하고 실행한다

Interrupt -  인터럽트

interrupt의 예시

  • 컴퓨터에서 현재 진행 중인 작업을 일시 중단하고, CPU가 긴급하거나 특별한 작업을 처리할 수 있도록 하는 메커니즘
    • system bus를 통해 전달이 된다
  • 멀티태스킹 및 하드웨어 관리를 가능하게 하는 기술이다.
  • 하드웨어 인터럽트
    • 외부 하드웨어 장치로부터 발생, 일반적으로 입출력 연산의 완료, 하드웨어 오류, 사용자의 입력등을 CPU에 알림
    • CPU가 다른 작업을 수행하는 도중에도 발생 가능
    • 인터럽트 요청(IRQ) 라인을 통해 CPU에 신호 전달
  • 소프트웨어 인터럽트
    • 소프트웨어 instruction에 의해 발생
    • 시스템 호출 및 예외 처리와 같은 상황에서 사용

 

처리과정

  1. 인터럽트 발생
    1. 하드웨어 및 프로그램에서 인터럽트 신호를 CPU에 보냄
  2. 인터럽트 인식
    1. 인터럽트를 인식하게 되면 현재 수행 중인 명령어의 실행을 완료하고 현재 상태를 저장(context switching)
  3. 인터럽트 처리
  4. 작업 재개
    1. CPU는 중단된 작업을 원래 상태로 복구하고 실행을 재개한다.