Studying/CS

운영체제

SEOHEY 2023. 11. 13. 21:20

 

 

1. 운영체제(OS, Operating System)란

  • 하드웨어 위에 설치되어 하드웨어 계층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층
하드웨어 ↔ 운영체제 ↔ 유틸리티 ┄ 응용프로그램 ┄ 사용자

 

 

2. OS의 역할

  • CPU, 메모리 등 한정된 컴퓨터 시스템의 자원을 관리
  • 사용자와 컴퓨터 간 인터페이스를 제공해 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경 제공

 

3. 대표적인 OS의 종류

  • 윈도우(Windows)
  • 맥OS(macOS)
  • 리눅스(Linux)
  • 유닉스(Unix)

 

4. 운영체제의 목적

한정된 자원 안에서 정확하고 빠르게 주어진 문제를 해결
  • 처리 능력(throughput) 향상: 자원 관리를 통해 일정 시간 내에 시스템이 처리하는 일의 양을 향상시킴.
  • 반환 시간(turnaround time) 단축: 사용자가 시스템에 요청한 작업을 완료할 때까지 소요되는 시간을 단축시킴.
  • 사용 가능도(availability, 시스템 자원을 얼마나 빨리 제공할 수 있는가) 향상: 사용자가 컴퓨터를 사용해야 할 때 자원을 즉시 사용할 수 있게 함.
  • 신뢰도(reliability, 시스템이 주어진 문제를 정확하게 푸는지) 향상: 입력 값에 대한 정확한 결과 값을 줄 수 있도록 함.

 

5. CPU와 메모리 구조

  • CPU(Central Processing Unit, 중앙 처리 장치, 프로세서): 컴퓨터에서 프로그램을 실행하는 데 필요한 연산을 처리하고 수행하는 컴퓨터의 뇌
  • 메모리: 데이터를 저장하기 위한 기억장치
  • 메모리의 종류
    1. 주 기억장치
      • 메인 메모리
      • 휘발성 메모리(전원 공급이 중단되면 저장된 정보가 사라짐)
      • 일반적으로 RAM
    2. 보조 기억장치
      • 비휘발성 메모리
      • SSD(Solid State Drive), HDD(Hard Disk Drive) 등
  • 메모리의 계층 구조
CPU에서 빨리 접근할 수 있도록 나뉜 구조

메모리의 계층 구조

 레지스터
(register)
  • CPU가 사용자 요청을 처리하는 데 필요한 데이터를 임시로 저장
  • CPU 내부에 위치
캐시 메모리
(cache memory)
  • CPU와 RAM 사이의 속도 차이를 해결
  • CPU 내부에 위치
RAM
(Random Access Memory)
  • 프로그램을 실행할 때 필요한 정보를 저장
  • 휘발성 기억장치
하드 디스크
(hard disk)
  • 사용자가 필요한 데이터와 프로그램을 저장
  • 비휘발성 기억장치

 

  • 프로세스(process)
    • 프로그램을 실행하면 OS가 디스크에 있는 프로그램을 메모리로 로드(공간을 할당)
    • 이때 메모리에 로드한 프로그램을 프로세스라고 하며 CPU가 처리
    • CPU는 하나의 프로세스만 처리
    • 멀티 프로세스 환경에서는 OS가 스케줄링을 통해 CPU에 프로세스를 할당

 

6. 커널과 시스템 콜

  • 커널(kernel)
    • OS의 핵심 요소
    • 다음과 같은 중요한 역할을 수행
      • 컴퓨터 하드웨어와 프로세스의 보안
      • 자원 관리: CPU 스케줄링, 메모리 관리, 입출력 관리, 파일 시스템 관리
      • 하드웨어 추상화
    • 커널의 위치
    • 커널 모드(kernel mode)와 사용자 모드(user mode)
      • 운영체제는 커널에서 관리하는 중요 자원에 사용자가 쉽게 접근하지 못하도록 모드를 나눔.
      • 커널 모드: 하드웨어에 직접 접근해 메모리, CPU와 같은 자원을 사용할 수 있음.
      • 사용자 모드: 커널 모드의 자원에 접근할 수 없게 제한을 둠.
  • 시스템 콜(system call)
    • 사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수
    • 사용자 모드에서 실행된 프로세스가 자원에 접근하려면 시스템 콜을 호출해 커널에 요청해야 함.
    • 커널은 시스템 콜로 받은 요청을 처리한 후 다시 시스템 콜로 결과 값을 반환
    • 시스템 콜을 사용해 할 수 있는 일
      • 프로세스 제어
      • 파일 조작
      • 장치 관리
      • 데이터의 유지 보수
      • 통신
      • 보호
    • 시스템 콜의 호출 구조
    • 시스템 콜의 대표적인 예
      • 프로세스를 생성하는 fork()
      • 부모 프로세스가 자식 프로세스의 수행을 기다리는 wait()
    • 시스템 콜에서 커널에 매개변수를 전달하는 방법
      • 매개변수를 CPU의 레지스터에 직접 전달: 매개변수의 개수가 레지스터의 개수보다 많은 경우에 문제가 될 수 있음.
      • 매개변수를 메모리에 저장한 후 메모리의 주소 값을 레지스터에 저장
      • 매개변수를 프로그램의 스택에 push하고 OS에서 pop해 매개변수를 전달

 

* 출처 *

기술 면접 대비 CS 전공 핵심 요약집(길벗)

반응형