HJW's IT Blog

OS 개요 본문

OS

OS 개요

kiki1875 2023. 3. 31. 14:01

OS 란?

컴퓨터의 하드웨어와 소프트웨어를 관리하는 시스템 소프트웨어의 일종이다. 

 

즉, 컴퓨터 시스템의 하드웨어와 응용 프로그램간의 인터페이스를 담당하며, 하드웨어를 관리, 응용 프로그램을 실행 시키는 작업을 한다. 

  • 컴퓨터 시스템(4가지)
    • Hardware - 컴퓨터 자원 제공
    • OS - 다른 프로그램에서 하드웨어 사용과 제어를 용이하게
      • Resource Allocator: 자원 관리자
      • Control Program: User program 과 I/O 장치 관리
      • Kernel: 부팅 후 항상 돌아가는 프로그램
    • Application Program - 컴퓨터 자원들이 주어진 문제를 어떻게 해결 할 지
    • Users - People, machine, other computers

 

OS는 하드웨어와 소프트웨어 사이의 공통 분모들을 모아 compact 하게 짠 소프트웨어이다.

 

OS는 중요한 자원 관리자 이다. OS 는 다음 자원들을 관리한다.

  • CPU - OS 는 CPU 의 시간을 분할하여 다른 프로세스들이 공평하게 사용 가능하게 한다
  • Memory - OS 는 여러 프로세스들이 메모리를 효율적으로 사용할 수 있도록 한다
  • 저장 장치 - OS는 하드 드라이브와 같은 저장장치를 관리한다.
  • 입출력 장치 - OS는 마우스, 키보드, 프린터와 같은 입출력 장치를 관리하며, 동작을 처리한다

OS 는 입출력 장치와 메모리 사이의 데이터 전송을 위해 Direct Memory Access 방식을 이용한다. DMA는 CPU의 개입 없이 입출력 장치가 메모리에 직접 데이터를 전송할 수 있게 해준다. 이렇게 함으로써 시스템의 전반적인 성능을 향상시키고 CPU의 부담을 줄일 수 있다.

system bus

  • DMA 방식을 사용하지 않는다면, CPU가 모든 연산 과 데이터 복사를 수행해야 하기 때문에 효율이 굉장히 낮아진다
  • 이러한 방식을 통해 True Multiprocessing 이 가능해 진다. 
    • CPU는 큰 명령만 내리고, 입출력 장치의 각 부분들이 각각 알아서 실행, 결과를 메모리로 복사 하기 때문에 여러 입출력 장치의 동시 실행이 가능하다.

 

OS는 시분할 시스템을 사용한다

  • CPU는 여러직업 사이에 다중화 된다
  • 작업은 메모리와 디스크 사이를 왔다 갔다 한다

현대의 OS 기능

  • Concurrency - 동시에 여러 프로세스가 돌아간다
    • 프로세스끼리 협력도 가능하다 > 컴퓨터는 인간 사회 기반 모델이기 때문
    • 동시 병렬로 움직이기에 조종자가 필요하다: CPU scheduling, Resource Management
  • Memory Management: 각 프로세스에 메모리 할당
  • File System: 저장공간을 각 프로그램에게 할당

Input/Output

  • CPU와 device controller 들은 모두 하나의 bus 사용
    • Device의 상태를 확인하기 위해 - Status register 확인 후 Control register에 명령어 전달
      • Status register: See what is done
      • Control register: Tell what to do
  • Software-polling synchronous I/O
    • CPU가 계속 I/O 작업이 끝났는지 확인한다 ~> 비 효율적
    • 그렇다면 효율적인 방법은? - Interrupt
  • Interrupt-based asynchronous I/O
    • Concurrency 의 핵심적 요소
    • 각 I/O 장치가 Interrupt signal 발생
    • Interrupt 발생시 CPU는 현 state 를 저장한다 -> CPU 내의 모든 register 저장
    • 그 후 interrupt handler 을 불러온다
    • Handler가 interrupt 처리 후 CPU는 state를 복구한다

 

Storage Structures

Storage Structures

 

Protection

  • Multiprogramming 을 하기 위해 I/O와 memory는 서로에게서 보호되어야 한다
  • 이는 두가지 CPU 모드를 통해 이루어 진다 - User mode, Kernel mode
    • Kernel Mode: I/O 장치에 개입 및 인트럽트 가능, 메모리 상태 조작, mode 변경
    • 구조적 지원이 필요하다
  • User Program들은 system call을 통해 I/O를 실행한다
  • System call 은 인트럽트의 일종으로, OS kernel 에서 실행되는 서비스로 user process와 커널간의 인터페이스 역할을 한다. 
    • Syscall이 호출되었을때 handler 는...
      • 상태 저장
      • 요청받은 I/O 실행
      • 상태 복구, 원 프로그램 복귀
    • Syscall 작동 과정
      • 사용자가 syscall 호출
      • User process 는 호출된 syscall 이 어떤 argument를 필요로 하는지, 그 인자들 전달
      • 커널은 user process의 요청 받아들이고 syscall 처리를 위해 cpu 제어권을 가져옴
      • 커널은 syscall 실행, 사용자 프로세스가 요청한 작업 수행
        • 이때, kernel은 요청 수행에 필요한 자원 할당
      • syscall 작업이 끝난후 커널은 cpu 제어권을 다시 user process에 반환
  • Timer을 사용하여 CPU가 한가지 프로세스에 독점당하는 것을 방지

'OS' 카테고리의 다른 글

OS:Cooperating Process  (0) 2023.04.06
CPU Scheduler  (0) 2023.04.03
Frame Pointer, Stack Pointer  (0) 2023.04.02
OS: Process  (0) 2023.04.02
OS Management + System Call  (0) 2023.04.01