[CS] 운영 체제와 시스템 구조의 이해

최지나·2023년 12월 17일
2

CS

목록 보기
32/55
post-thumbnail

1. 운영 체제와 컴퓨터 시스템 구조

운영체제의 종류: GUI와 CUI

운영체제는 크게 GUI(Graphical User Interface)와 CUI(Character User Interface)로 나뉜다.

  • GUI: 그래픽을 기반으로 한 인터페이스로, 대표적으로 Windows OS와 macOS가 여기에 속함
  • CUI: 문자기반 인터페이스로, 과거의 MS-DOS가 이에 해당

운영체제의 핵심 역할

커널 = 운영체제의 중추

  • CPU 스케쥴링, 메모리 관리, 디스트 파일 관리, I/O 디바이스 관리 등을 담당. 운영체제를 통해, 복잡한 하드웨어 관리 없이도 프로그램을 실행하고 데이터를 저장할 수 있음

운영체제의 구조

  • 사용자 프로그램과 하드웨어 사이의 중개자 역할
  • 사용자 인터페이스(GUI,CUI)시스템 콜 (System Call)을 통해 사용자 요구를 받아들이고, 커널을 통해 이를 처리

컴퓨터 시스템의 구조

이름설명
CPU인터럽트에 의해 메모리에 존재하는 명령어를 해석하여 실행하는 일꾼
DMA 컨트롤러CPU의 일을 보조하는 일꾼
메모리전자회로에서의 데이터, 상태 등을 기록하는 공간. RAM
타이머특정 프로그램에 시간을 다는 역할 (무한루프 방지)
디바이스 컨트롤러I/O 디바이스들의 작은 CPU
로컬 버퍼디바이스에 달려 있는 작은 메모리
  • 주의 : 메모리는 단순한 공간이고, 메모리에 있는 명령어(instruction)을 실행하는 것이 CPU

CPU

  • 명령어를 해석하고 실행하는 '컴퓨터의 두뇌'
  • 산술논리연산장치, 제어장치, 레지스터로 구성
    • 산술논리연산장치(ALU): 산술연산과 논리연산을 수행하는 회로 장치
    • 제어장치(CU): 프로세스의 조작을 지시하며 명령어들을 읽고, 해석하고 데이터 처리를 위한 순서를 결정. 다른 하드웨어 구성 요소에 지시를 내림
    • 레지스터: CPU 안에 있는 매우 빠른 임시기억장치

CPU의 동작 순서

  • Fetch
    제어장치가 메모리로부터 다음에 실행할 명령어를 가져옴
    가져온 명령어는 명령어 레지스터에 저장됨

  • Decode
    제어장치는 명령어 레지스터에 저장된 명령어를 해석
    해석한 명령어에 따라 필요한 데이터를 레지스터나 메모리로부터 가져옴

  • Execute
    ALU는 해석한 명령어에 따라 산술, 논리 연산을 수행

  • 저장
    연산 결과를 레지스터나 메모리에 저장

2. 인터럽트(Interrupt)

CPU가 현재 진행중인 작업을 잠시 중단하고, 다른 작업을 처리하도록 하는 기능

  • CPU는 메모리에 있는 명령어(instruction)들을 순차적으로 실행하는데, 인터럽트가 발생하면, CPU는 현재 실행 중인 명령어를 중단하고 인터럽트 핸들러(또는 인터럽트 서비스 루틴, ISR)로 제어를 이동. 인터럽트 핸들러는 인터럽트의 원인을 처리하고, 처리가 완료되면 CPU는 중단되었던 작업을 계속해서 수행.

인터럽트의 종류

하드웨어 인터럽트

  • 주로 외부 I/O 디바이스로부터 발생.
    • ex) 사용자의 마우스 버튼 클릭, 디스크 파일 읽기/쓰기 작업 완료

소프트웨어 인터럽트(=트랩)

  • 프로그램 실행 중 발생하는 오류나 프로세스의 시작과 종료같은 상황에서 발생. 일반적으로 하드웨어 인터럽트보다 우선순위가 높음

3. 시스템 콜(System Call)

운영체제와 그 커널에 접근하기 위한 중요한 인터페이스. 유저 프로그램이 운영 체제의 다양한 서비스를 이용하기 위해 커널 함수를 호출할 때 필요. 프로세스 관리, 파일 관리, 디바이스 관리, 시간 및 날짜 설정, 프로세스 간 통신 등에 사용

  • ex) 프로세스 종료를 위한 kill() 함수가 시스템 콜을 통해 커널 함수로 호출된다

시스템 콜의 과정

  1. 유저 프로그램이 I/O 요청 트랩 발동
  2. 올바른 I/O 요청인지 확인
  3. 유저 모드가 시스템 콜을 통해 커널 모드(모든 컴퓨터 자원에 접근 가능)로 변환
  4. 이후 커널 함수를 실행
  • 시스템 콜은 커널 모드와 유저 모드를 구분하는 modebit을 사용하여 작동
    • modebit은 0과 1의 값을 가지는 플래그 변수로, 1은 유저모드, 0은 커널 모드

시스템 콜의 장점

  • 유저 프로그램과 커널의 분리로 인해 유저 프로그램은 내부의 복잡한 동작에 신경쓸 필요 없음
  • 시스템의 안정성과 보안 강화. ex) 악의적인 애플리케이션으로 인한 메모리 오염, 무단 카메라 접근 등 방지

4. 메모리 계층 (Memory Hierarchy)

컴퓨터 시스템의 데이터 저장 및 접근 속도와 비용을 최적화하기 위해 다양한 유형의 메모리를 계층적으로 구성한 것. 레지스터, 캐시, 주기억장치(RAM), 보조기억장치(HDD, SSD)로 구분

메모리 계층 구분

  • 레지스터: CPU 내부에 위치한 매우 빠르지만 용량이 작은 휘발성 메모리
  • 캐시: CPU에 인접해 있으며 속도는 레지스터보단 느리지만 여전히 빠른 휘발성 메모리 (L1,L2 캐시)
  • 주기억장치: RAM. 캐시보다는 느리지만, 용량이 큰 휘발성 메모리
  • 보조기억장치: HDD나 SSD와 같은 비휘발성 메모리로 상대적으로 접근 속도는 낮지만 큰 용량의 데이터 저장 가능

메모리 계층의 존재 이유

  • 더 빠른 접근과 처리속도 증가: 자주 사용되는 데이터는 빠른 메모리(ex 캐시)에 저장되어 빠르게 접근하고 처리 가능
  • 비용의 효율성: 상위 계층(ex 캐시)는 비싸지만 속도가 빠르고, 하위 계층(ex 보조기억장치)는 비용이 저렴하며 용량이 큼 -> 계층 구조를 통한 비용 효율적 사용 가능
  • 쟈원의 효율적 사용: 자주 접근하지 않는 데이터는 보다 저렴하고 용량이 큰 하위 계층에 저장함으로써 메모리 자원을 효율적으로 사용 가능

로딩 중

하드디스크 또는 인터넷에서 데이터로 읽어 RAM으로 전송하는 과정이 완료되지 않았음을 의미


REF

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글