📖
Tech interview를 위한 CS
  • Tech interview를 위한 CS!
  • 디자인 패턴
    • 디자인 패턴 개요
    • 싱글톤 패턴
    • 팩토리 패턴
    • 전략 패턴
    • 옵저버 패턴
    • 프록시 패턴
    • 이터레이터 패턴
    • 노출모듈 패턴
    • MVC, MVP, MVVM
  • 프로그래밍 패러다임
    • 프로그래밍 패러다임 개요
    • 선언형과 함수형 프로그래밍
    • 객체지향 프로그래밍
  • 운영체제
    • 운영체제와 컴퓨터
    • 메모리
    • 프로세스
    • PCB와 Context Switching
    • 멀티프로세싱, IPC
    • 스레드와 멀티스레딩
  • 🚧준비 중 입니다.
  • About me
  • Dev Blog
Powered by GitBook
On this page
  • 운영체제란
  • 운영체제의 역할과 구조
  • 운영체제의 역할
  • 운영체제의 구조
  • 컴퓨터의 HW 구성요소
  • CPU
  • DMA 컨트롤러
  • 메모리
  • 타이머
  • 디바이스 컨트롤러
  • 참고자료
Edit on GitHub
  1. 운영체제

운영체제와 컴퓨터

Previous객체지향 프로그래밍Next메모리

Last updated 3 years ago

운영체제란

사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다.

운영체제의 역할과 구조

운영체제의 역할

  1. CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제 할당 및 변환 관리

  2. 메모리 관리: 한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리

  3. 디스크 파일을 어떠한 방법으로 보관할지 관리

  4. I/O 디바이스 관리: I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리

운영체제의 구조

시스템 호출

  • 운영체제가 커널에 접근하기 위한 인터페이스

  • 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용

  • 유저 프로그램이 I/O 요청으로 트랩(trap)을 발동하면, 올바른 I/O 요청인지 확인 후 유저 모드가 시스템콜을 통해 커널 모드로 변환되어 실행

  • 프로세스나 스레드(응용프로그램)에서 운영체제로 어떠한 요청을 할 땐, 시스템 호출과 커널을 거쳐 운영체제에게 전달된다.

  • 하나의 추상화 계층이다. 덕분에 우리는 네트워크 통신, DB와 같은 낮은 단계의 영역 처리에 대한 부분을 신경 쓰지 않고 프로그램을 구현할 수 있게된다.

유저모드와 커널모드(관리자모드)

  • 유저모드: 유저가 접근할 수 있는 영역을 제한적으로 두며, 컴퓨터 자원에 함부로 침범하지 못하는 모드

  • 커널모드(관리자 모드): 모든 컴퓨터 자원에 접근할 수 있는 모드

  • 커널: 운영체제의 핵심 부분. 시스템 호출 I/O를 제공하며, 보안, 메모리, 프로세스, 파일시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할

Modebit

  • 시스템 호출이 작동될 떄, modebit를 참고하여 유저모드와 커널모드 구분

  • 0또는 1 값을 가지는 플래그 변수

  • 카메라, 키보드 등 I/O 디바이스는 운영체제를 통해서만 작동해야 한다. 유저모드에서는 이를 못하게 하고, 커널 모드를 거쳐 운영체제를 통해서만 작동할 수 있도록 보안 목적

드라이버

  • 하드웨어를 제어하기 위한 소프트웨어

컴퓨터의 HW 구성요소

CPU

  • 산술논리연산장치, 제어장치, 레지스터로 구성

  • 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석하여 실행하는 일꾼

  • 운영체제의 커널이 프로그램을 메모리에 올려 프로세스로 만들면 CPU가 이를 처리

제어장치(CU, Control Unit)

  • 프로세스 조작을 지시하는 CPU의 한 부품.

  • 입출력장치 간 통신을 제어하고 명령어들을 일고 해석하며 데이터 처리를 위한 순서를 결정

레지스터

  • CPU 안에 있는 매우 빠른 임시기억장치

  • CPU와 직접 연결되어 있으므로 연산속도가 메모리보다 수십 배에서 수백 배까지 빠름

  • CPU 자체적으로 데이터를 저장할 방법이 없기 때문에 레지스터를 거쳐 데이터 전달

산술논리연산장치(ALU, Arithmetic Logic Unit)

  • 덧샘, 뺄셈 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱 같은 논리 연산을 계산하는 디지털 회로

CPU의 연산처리

  1. 제어장치가 메모리 -> 레지스터에 계산할 값을 로드

  2. 제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명령

  3. 제어장치가 산술논리연산장치에서 계산된 결과를 다시 레지스터 -> 메모리로 계산한 값을 저장

인터럽트

  • 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것

    • 키보드, 마우스 등 I/O 디바이스로 인한 인터럽트

    • 0으로 숫자를 나누는 산술연산에서의 인터럽트

    • 프로세스 오류 등

  • 인터럽트 발생시, 인터럽트 핸들러 함수 실행. 인터럽트 간에는 우선순위가 있다.

하드웨어 인터럽트

  • 키보드 연결, 마우스 연결 등 I/O 디바이스에서 발생하는 인터럽트

  • 인터럽트 라인이 설계된 이후 순차적인 인터럽트 실행을 중지

  • 운영체제에 시스템 호출을 요청하여 원하는 디바이스로 향해 작은 로컬 버퍼에 접근하여 일을 수행한다.

소프트웨어 인터럽트

  • trap이라고도 한다.

  • 프로세스 오류 등으로 프로세스가 시스템 호출을 할 때 발동

DMA 컨트롤러

  • I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치

  • CPU에만 너무 많은 인터럽트 요청이 들어오기에 CPU 부하를 막아준다. CPU보조 역할

  • 하나의 작업을 CPU와 DMA컨트롤러가 동시에 하는 것을 방지

메모리

  • 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치

  • 보통 RAM을 메모리라고도 한다.

타이머

  • 몇 초 안에는 작업이 끝나야 한다는 것을 정하고 특정 프로그램에 시간 제한을 다는 역할

  • 시간이 많이 걸리는 프로그램이 작동할 때 제한을 걸기 위해 존재

디바이스 컨트롤러

  • 컴퓨터와 연결되어 있는 I/O 디바이스들의 작은 CPU

참고자료

CPU는 계산을 담당하고 메모리는 기억을 담당한다. 에서 상세 다룰 예정

운영체제의 개요 (tistory.com)
What is the function of DMA in a computer? - Quora
다음 page
운영체제의 개요 (tistory.com)
What is the function of DMA in a computer? - Quora