System Architecture & Program Execution

gmkim·2023년 10월 17일
0

OS

목록 보기
2/11
post-thumbnail

컴퓨터 시스템 구조

주요 장치

  1. Computer = CPU + Memory
  2. 입출력(I/O) 장치

CPU

중앙 처리 장치(Central processing unit)
컴퓨터 시스템을 통제하고, 프로그램의 연산을 실행하고 처리하는 컴퓨터 시스템의 핵심 장치

  • 산술 논리 장치(ALU) : 연산 수행
  • 컨트롤 장치(CU) : 제어 명령 전달
  • Register : 결과 값을 일시적으로 기억하는 장치

Memory

주 기억 장치
용량이 매우 작은 CPU의 Register을 대신해, 정보를 저장해 두었다가 필요할 때 읽어 들여 이용할 수 있는 장치

  • 컴퓨터가 켜지면 운영체제, 사용자 프로그램들이 해당 Memory에 올라가게 되고 → CPU는 Memory에서 프로그램들의 명령어를 읽어와 작업 수행
  • ROM, RAM 등

I/O device

입출력 장치
사용자가 원하는 문자나 그림의 데이터를 컴퓨터로 전달하거나 출력하는 장치

  • 입력장치 : 키보드, 마우스 등
  • 출력장치 : 모니터, 프린터 등

입출력(I/O)

# 순서
  1. system call : 사용자 프로그램이 OS에 I/O 요청
  2. trap : 인터럽트 벡터의 특정 위치로 이동
  3. 제어권 이동 : 인터럽트 벡터가 가리키는 인터럽트 서비스 루틴으로 이동
  4. I/O 확인 : 올바른 I/O 요청인지 확인
  5. I/O 수행
  6. I/O 완료 : 제어권을 system call 다음 명령으로 옮김

관련 장치

Device Controller

장치 제어기; 해당 I/O 장치 유형을 관리하는 일종의 작은 CPU; HW

※ I/O가 끝났을 경우 Interrupt로 CPU에 그 사실을 알림

  • 제어 정보를 위해 control register, status register를 가짐
  • local buffer를 가짐 (≈ data register)

Timer

타이머; Time Sharing; 특정 프로그램 CPU 독점 방지

※ 정해진 시간이 흐른 뒤 OS에 제어권이 넘어가도록 Interrupt 발생시킴

  • 방식
    • 매 클럭 틱 때마다 : -1
    • 값이 0이 되면 → Interrupt
  • 현재 시간 계산 용도로도 사용됨

DMA Controller

DMA(Direct Memory Access)

  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
  • CPU의 중재 없이 device controller가 device의 buffer storage 내용을 메모리에 block 단위로 직접 전송
  • byte 단위가 아닌 block 단위로 Interrupt 발생시킴

인터럽트 (Interrupt)

  1. 인터럽트가 호출된 시점의 register와 program counter를 save
  2. CPU의 제어를 인터럽트 처리 루틴에 넘김
  • 넓은 의미에서는...?
    • Interrupt (하드웨어 인터럽트)
    • Trap (소프트웨어 인터럽트)
      • Exception : 프로그램 오류
      • System call : 프로그램이 커널 함수를 호출

시스템콜 (System Call)

사용자 프로그램이 OS의 서비스를 받기 위해 커널 함수를 호출하는 것

동기식/비동기식 입출력

이름정의
동기식 입출력I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램으로 넘어감
비동기식 입출력I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감

저장

저장장치 계층 구조

관련 장치

장치휘발성속도크기가격
주기억 장치OO비쌈
보조기억장치XX작음

Cache

  • 적은 용량의 캐시 메모리를 사용해서도 메인 메모리와 같이 큰 용량을 가진 것처럼 효율적으로 관리
  • register와 memory 사이에 존재

프로그램의 실행

함수

종류설명
사용자 정의 함수자신의 프로그램에서 정의한 함수
라이브러리 함수자신의 정의하지 않고 가져다 쓴 함수; 실행 파일에 포함
커널 함수운영체제 프로그램의 함수
profile
🌊 Flooding loads of work

0개의 댓글