Post

[운영체제] 컴퓨터 요소와 메모리

본 게시글은 [면접을 위한 CS 전공지식 노트]를 기반으로 개인 학습 내용을 정리한 글입니다.

운영체제와 컴퓨터

운영체제 : 하드웨어와 소프트웨어(유저 프로그램)를 관리
컴퓨터 요소 : CPU, 메모리 등

운영체제의 역할과 구조

운영체제 역할

  1. CPU 스케줄링과 프로세스 관리
  2. 메모리 관리
  3. 디스크 파일 관리
  4. I/O 디바이스 관리

운영체제 구조

유저 프로그램
인터페이스 (GUI, CUI)
시스템콜
커널
(드라이버, 파일 시스템 등)
하드웨어

운영체제 : GUI, 시스템콜, 커널, 드라이버

용어
  • GUI : 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태, 단순 명령어 창이 아닌 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호 작용할 수 있도록 해준다.
  • 드라이버 : 하드웨어를 제어하기 위한 소프트웨어
  • CUI : 그래픽이 아닌 명령어로 처리하는 인터페이스

시스템콜
운영체제가 커널에 접근하기 위한 인터페이스, 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용
유저 프로그램이 I/O 요청으로 트랩(trap)을 발동하면 올바른 I/O 요청인지 확인 후 유저 모드가 시스템콜을 통해 커널 모드로 변환되어 실행됨
-> 컴퓨터 자원에 대한 직접 접근 차단
-> 프로그램을 다른 프로그램으로부터 보호

용어
  • I/O 요청 : 입출력 함수, 네트워크, 파일 접근 등에 관한 일
  • 드라이버 : 하드웨어를 제어하기 위한 소프트웨어

modebit

  • 1(유저모드) 또는 0(커널모드) 값을 가지는 플래그 변수
  • 시스템콜이 작동될 때, 유저모드와 커널모드를 구분하기 위함
  • 카메라, 키보드 등 I/O 디바이스는 운영체제를 통해서만 작동

컴퓨터 요소

CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등

CPU
산술논리연산장치, 제어장치, 레지스터로 구성
제어장치
프로세스 조작을 지시하는 CPU의 부품
레지스터
CPU 안에 매우 빠른 임시기억장치
메모리보다 수십 배 ~ 수백 배 빠름
산술논리연산장치
덧셈, 뺄셈 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱 같은 논리 연산을 계산하는 디지털 회로

CPU 연산처리 과정

  1. 제어장치가 메모리&레지스터에 계산할 값을 로드
  2. 제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명령
  3. 제어장치가 계산된 값을 다시 레지스터->메모리로 계산한 값을 저장

인터럽트
어떤 신호가 들어왔을때 CPU를 잠깐 정지시킴
인터럽트 발생 시, 인터럽트 핸들러 함수가 모여 있는 인터럽트 벡터로 가서 인터럽트 핸들러 함수가 실행

인터럽트 핸들러 함수 커널 내부의 IRQ를 통해 호출, request_irq()를 통해 인터럽트 핸들러 함술르 등록할 수 있음

하드웨어 인터럽트
I/O 디바이스에서 발생하는 인터럽트
인터럽트 라인이 설계된 이후 순차적인 인터럽트 실행을 중지, 운영체제에 시스템콜을 요청해서 원하는 디바이스로 향해 디바이스에 있는 작은 로컬 버퍼에 접근해 일을 수행 소프트웨어 인터럽트
=트랩(trap)
프로세스 오류 등으로 프로세스가 시스템콜을 호출할 때 발동

DMA 컨트롤러
I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
CPU 부하를 막아줌, CPU 일을 부담하는 보조 일꾼
하나의 작업을 CPU와 DMA 컨트롤러가 동시에 하는 것을 방지 메모리
=RAM
전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치 타이머
몇 초 안에 작업이 끝나야 한다는 것을 정하고 특정 프로그램에 시간 제한을 다는 역할
디바이스 컨트롤러
컴퓨터와 연결되어있는 IO디바이스들의 작은 CPU를 말함
로컬버퍼 : 각 디바이스에서 데이터를 임시로 저장하기 위한 작은 메모리

메모리

CPU는 메모리에 올라와 있는 프로그램의 명령어들을 실행

메모리 계층

레지스터, 캐시, 메모리, 저장장치로 구성되어 있음

  • 레지스터
  • 캐시
    • 시간 지역성 vs 공간 지역성
    • 캐시히트 vs 캐시미스
    • 캐시 매핑 : 캐시가 히트되기 위해 매핑하는 방법
  • 주기억장치
  • 보조기억장치

웹 브라우저의 캐시
소프트웨어적인 대표적인 캐시 : 쿠키, 로컬 스토리지, 세션 스토리지

메모리 관리

가상 메모리
컴퓨터가 실제로 이용가능한 메모리 자원을 추상화해 사용자들에게 매우 큰 메모리로 보이게 만드는 것

가상 주소 : 가상적으로 주어진 주소
실제 주소 : 실제 메모리상에 있는 주소
메모리 기억장치(MMU) : 가상주소를 실제주소로 변환
TLB : 메모리와 CPU사이에 있는 주소 변환을 위한 캐시

스와핑
페이지 폴트가 발생할때, 메모리에서 당장 사용하지 않는 영역을 하드디스크로 옮기고 하드디스크의 일부분을 마치 메모리처럼 불러와 쓰는 것

페이지 폴트
가상메모리에는 존재하지만, 실제 메모리에 없는 데이터/코드에 접근하는 경우
CPU 이용률 낮아짐

스레싱 메모리의 페이지폴트율을 높이는 것, 컴퓨터 성능저하 초래

작업 세트
지역성을 통해 결정된 페이지 집합을 미리 메모리에 로드

PFF
페이지 폴트 빈도를 조절하는 방법, 상한선과 하한선을 만드는 방법

메모리 할당
메모리에 프로그램을 할당할 때 시작메모리 위치, 메모리의 할당크기를 기반으로 할당
연속 할당 vs 불연속 할당
고정 분할 방식 vs 가변 분할 방식

페이지 교체 알고리즘
오프라인 알고리즘
FIFO
LRU
NUR
LFU

This post is licensed under CC BY 4.0 by the author.