본문 바로가기
면접을 위한 CS 전공지식 노트/3장 운영체제

운영체제: 운영체제와 컴퓨터

by alswlfl 2024. 9. 19.

운영체제(OS, Operating System)란

사용자에게 편리한 인터페이스 제공하고, 컴퓨터 시스템의 자원을 효율적으로 관리하는 SW

ex) 윈도우, MacOS, 리눅스, 유닉스, iOS, 안드로이드 등

 

펌웨어란

하드웨어 장치에 내장되어 하드웨어를 직접 제어하고 초기화하는 저수준 소프트웨어

⇒ 운영체제는 응용프로그램을 실행하는 환경을 제공, 펌웨어는 하드웨어 자체를 동작시키고 운영체제를 부팅하는 데 필수적인 역할


운영체제 역할

  1. CPU 스케줄링과 프로세스 관리
    CPU 소유권을 어떤 프로세스에 할당할지, 프로세스 생성과 삭제, 자원 할당 및 반환 관리
  2. 메모리 관리
    한정된 메모리를 어떤 프로세스에 얼만큼 할당할지 관리

  3. 디스크 파일 관리
    디스크 파일을 어떠한 방법으로 보관할지 관리

  4. I/O 디바이스 관리
    I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리

운영체제 구조

  • GUI: 명령어가 아닌 아이콘으로 컴퓨터와 상호작용하는 인터페이스
  • CUI: 명령어로 컴퓨터와 상호작용하는 인터페이스
  • 시스템콜: 운영체제가 커널에 접근하기 위한 인터페이스 → 커널 함수 호출 시 사용
    • 시스템콜은 응용프로그램과 커널의 인터페이스 역할
  • 커널: 프로세스 관리, 메모리 관리, 저장장치 관리 등 운영체제의 핵심적인 기능을 모아놓은 것
    • 커널은 사용자나 응용프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단
      즉, 자원 접근을 위해서는 시스템콜 인터페이스를 이용해 접근해야함
  • 드라이버: 하드웨어 제어하기 위한 소프트웨어
    • 드라이버는 커널과 하드웨어의 인터페이스 역할

[동작 원리]

  1. 유저 프로그램이 I/O 요청 시 올바른 I/O 요청인지 확인
  2. 시스템콜을 통해 유저모드가 커널모드로 변환
    ❗️커널 모드로 변환하여 작업을 수행해 컴퓨터 자원에 대한 직접 접근 차단 가능
  3. 커널모드로 해당 요청 처리 후 다시 유저모드로 변환

[modebit이란?]

modebit: 1 또는 0의 값을 가지는 플래그 변수(커널 모드: 0, 유저모드: 1)

시스템콜 작동시 modebit 참고해서 유저모드와 커널모드 구분

⇒ 카메라, 키보드 등 I/O 디바이스는 운영체제를 통해서만 작동해야 함! 사용자가 의도하지 않은 공격을 방지


컴퓨터 요소

  • CPU(Central Processing Unit)
    산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치로, 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해 실행하는 일꾼
    운영체제의 커널이 프로그램을 메모리에 올려 프로세스로 만들면 CPU가 이를 처리

    제어장치(CU, Control Unit)
    프로세스 조작을 지시하는 CPU의 한 부품으로, 입출력장치 간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서 결정

    레지스터
    CPU 안에 있는 매우 빠른 임시기억장치로, CPU는 자체적으로 데이터 저장할 방법 없기 때문에 레지스터를 거쳐 데이터 전달
    - CPU와 직접 연결되어 있어 연산 속도가 매우 빠름

    산술논리연산장치(ALU, Arithmetic Logic Unit)
    덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 AND, OR 같은 논리 연산 수행

    [CPU의 연산 처리]
    1. 제어장치가 메모리로부터 레지스터에 필요한 데이터 로드
    2. 제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명령
    3. 제어장치가 레지스터에 저장된 계산된 값을 다시 메모리로 저장

    인터럽트
    어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것
    ex) 키보드, 마우스 등 I/O 디바이스로 인한 인터럽트, 0으로 숫자 나누는 산술 연산에서의 인터럽트, 프로세스 오류
    - 인터럽트 간에는 우선순위 존재, 즉 우선순위에 따라 실행
    - 하드웨어 인터럽트: 키보드 연결 혹은 마우스 연결 등 I/O 디바이스에서 발생하는 인터럽트
    - 소프트웨어 인터럽트(=트랩): 프로세스 오류 등 프로세스가 시스템콜 호출할 때 발동

  • DMA 컨트롤러
    I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
    - CPU 부하를 줄여 시스템 성능 향상
    - 하나의 작업을 CPU와 DMA 컨트롤러가 동시에 하는 것을 방지
    DMA(직접 메모리 접근)
    CPU를 거치지 않고
    주변장치가 시스템 메모리에 직접 접근할 수 있는 하드웨어 기능
    ⇒ DMA 컨트롤러가 수행

    [기본적인 입출력 제어 방식과 DMA 방식]
    기본적인 입출력 제어 방식

https://erinh.tistory.com/entry/운영체제-DMADirect-Memory-Access-개념과-동작-방법

        DMA 방식

https://erinh.tistory.com/entry/운영체제-DMADirect-Memory-Access-개념과-동작-방법


       [DMA 작동 방식]
       1. DMA 연산이 발생하면 DMA 컨트롤러는 주변장치와 메모리 간의 데이터 전송 관리
       2. 주변장치가 데이터를 전송할 준비가 되면, DMA 컨트롤러는 메모리 주소 지정하고 데이터 전송 시작
           → 이때, CPU는 관여 X

       3. 데이터 전송이 완료되면, DMA 컨트롤러는 CPU에 인터럽트를 보내 전송이 완료되었음을 알림

  • 메모리
    전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치
    - 보통 RAM을 메모리라고 함

  • 타이머
    특정 프로그램에 시간 제한을 거는 역할
    - 시간이 많이 걸리는 프로그램 작동 시 사용


  • 디바이스 컨트롤러
    컴퓨터와 연결되어 있는 I/O 디바이스들의 작은 CPU