개발자는 기록이 답이다

기술 면접 대비 CS 핵심 요약 - 운영체제 본문

CS/운영체제

기술 면접 대비 CS 핵심 요약 - 운영체제

slow-walker 2023. 9. 6. 23:53

📕본 포스팅은 "기술면접 대비 CS 전공 핵심 요약집" 책을 공부하면서 정리한 내용입니다.


기술 면접에서 출제 빈도가 높은 메모리, 프로세스 스레드 등의 개념을 이해하려면 운영체제에 대한 이해가 필요합니다.

 

1.1 운영체제

 

1.1.1 운영체제란? (중요도 ★☆☆ )

  • 컴퓨터 시스템의 자원 관리
  • 사용자가 컴퓨터를 사용할 수 있는 환경 제공
  • CPU, 메모리 같은 컴퓨터 자원은 제한적이라서 자원 관리는 매우 중요
  • 대표적인 OS : 윈도우, 맥OS, 리눅스, 유닉스

1.1.2 운영체제의 목적(중요도 ★☆☆)

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

 

1.1.3 CPU와 메모리 구조 (★★☆)

CPU(Central Processing Unit, 중앙 처리 장치) = 프로세서

  • 컴퓨터의 뇌, 프로그램을 실행하는데 필요한 연산을 처리하고 수행한다.

 

메모리

  • 데이터를 저장하기 위한 기억장치
    • 휘발성 메모리인 주 기억장치 - 메인 메모리, RAM
    • 비휘발성 메모리인 보조 기억장치 - SSD(Solid State Drive), HDD(Hard Disk Drive)

  • 레지스터(register) : CPU가 사용자 요청을 처리하는데 필요한 데이터를 임시로 저장하는 기억장치, CPU내부에 존재하며 접근 속도가 빠름
  • 캐시 메모리(cache memory) : CPU와 RAM 사이의 속도 차이를 해결하기 위한 기억 장치, CPU내부에 존재하며 레지스터 다음으로 접근 속도가 빠름
  • RAM(Random Access Memory) : 프로그램을 실행할 때 필요한 정보를 저장. CPU에서 접근 속도가 하드 디스크보다 빠르고, 휘발성 기억장치이다. 보통 메모리라고 할때 RAM을 의미한다.
  • 하드 디스크(hard disk) : 필요한 데이터와 프로그램을 저장하고, 비휘발성 기억장치이다.

 

프로그램 실행 -> OS가 디스크에 있는 프로그램을 메모리로 로드 -> 해당 프로그램을 프로세스라고 부름 -> CPU가 처리

CPU는 하나의 프로세스만 처리할 수 있어서 멀티 프로세스 환경에서는 OS가 스케줄링을 통해 CPU에 프로세스를 할당

 

 

1.1.4 커널과 시스템 콜 (중요도 ★★★)

커널

  • OS의 핵심 요소
  • 자원 관리를 위해 CPU스케줄링, 메모리 관리, 입출력 관리 파일 시스템 관리 담당
    • 커널 모드 : 하드웨어에 직접 접근해 메모리, CPU와 같은 자원을 사용할 수 있다.
    • 사용자 모드 : 커널 모드의 자원에 접근할 수 없게 제한을 둔다.

시스템 콜

  • 사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수
  • 커널은 시스템 콜로 받은 요청을 처리 한 후 다시 시스템 콜로 결과 값 반환
    • 대표적인 예  : 프로세스를 생성하는 fork(), 부모 프로세스가 자식 프로세스의 수행을 기다리는 wait()
     

시스템 콜 -> 커널에 매개변수를 전달하는 방법

1. 매개변수를 CPU의 레지스터에 직접 전달
  - 매개변수의 개수가 레지스터의 개수보다 많은 경우 문제가 될 수 있어서 권장 x
2. 매개 변수를 메모리에 저장한 후 메모리의 주소 값을 레지스터에 저장
3. 매개변수를 프로그램의 스택(stack)에 push, OS에서 pop해 매개변수를 전달