IT recording...

[OS] 1. 운영체제 본문

Operating System

[OS] 1. 운영체제

I-one 2022. 4. 24. 01:30

[이화여자대학교 반효경 교수님의 강의를 듣고 정리한 글입니다.]

운영체제

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net


[그림과 함께 편하게 보려면 여기로]

https://adorable-aspen-d23.notion.site/OS-1-affe592d43104c8db1e55348e2c9c6f6

 

[OS] 1. 운영체제

1. 운영체제란

adorable-aspen-d23.notion.site

1. 운영체제란

1. 운영체제

  • 정의 : 하드웨어 위에 설치되어, 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
  • 하는 일 : 컴퓨터 시스템의 자원을 효율적으로 관리해준다.
    • 프로세서, 기억장치, 입출력장치 등을 효율적으로 관리하는 것
      • 실행중인 프로그램들에게 CPU 적절히 분배해서 할당해주자
      • 실행중인 프로그램들에게 메모리 공간 적절히 분배해서 할당해주자
    • 적절히 분배는 어떻게? 공평한게 효율적인가?
      • NO! 효율적이지만, 굶는(starvation)은 없게끔 형평성 있게 ‘운영체제'가 해준다.
      • CPU스케줄링, 메모리관리, 입출력관리 등

2. 운영체제 분류

1. 동시 작업 가능 여부

  • 단일 작업 (single tasking)
    • 한 번에 하나의 작업만 처리
    • ex) MS-DOS 프롬포트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음
  • 다중 작업 (multi tasking)
    • 동시에 두 개 이상의 작업 처리
      • 사실 동시에 처리되는 것처럼 보이는거고, 두 개 이상의 작업이 실행될 수 있음을 의미
    • 다수의 작업을 중앙처리장치(CPU)와 같은 공용자원을 나누어 사용하는 것
    • UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 수행을 할 수 있음

2. 사용자 수

  • 단일 사용자 (single user)
    • ex) MS-DOS, MS Windows(일반적인 가정 컴퓨터)
  • 다중 사용자 (multi user)
    • 한 컴퓨터에 여러 user가 접근 → 보안 필요
    • ex) UNIX, NT Server

3. 처리 방식

  • 일괄 처리 (batch processing)
    • 작업 요청을 모아놨다가 일정 시간이 지나면 한번에 수행
    • 작업이 완전히 종료될 때까지 기다려야 함
    • 지금 안씀 ~.~
  • 시분할 방식
    • 여러 작업을 수행할 때 컴퓨터 처리 능력(CPU)을 시간 단위로 분할하여 사용
    • 일괄 처리 방식에 비해 응답 시간이 짧다.
    • interactive한 작업에 효율적이다. (사용자와의 상호작용이 있어야 하는 경우 응답 시간이 짧아진다.)
    • 일반적인 범용 OS(사용자를 위한)
  • 실시간 (realtime OS)
    • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 함
    • 데이터가 발생한 시점에서 필요한 계산처리를 즉석에서 처리하여 그 결과를 리턴한다.
    • ex) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어

3. 컴퓨터 시스템 구조 속 운영체제

1. 컴퓨터 구조

1. CPU

  • 컴퓨터의 브레인
  • 0과1로 연산을 제어하는 부분
  • 구성
    • 레지스터 : 연산에 필요한 데이터를 저장한다.
      • PC(다음 명령어 저장), IR(현재 실행 명령어 저장) 등
    • 제어장치 : 기계 명령어를 실행하는 순서를 제어
    • 연산장치 : 덧셈,뺄셈,OR,AND,NOT과 같은 논리연산 수행
  • 매 클럭마다 interrupt가 있는지 체크한다.

2. Memory

  • 컴퓨터의 스케줄노트(노션)
  • CPU가 프로그램을 실행하거나 데이터를 참조하기 위해 필요한 정보들을 저장해두는 공간
  • (1) ← register - cache - main memory(RAM) - hard disk → (2)
    • 1로 갈수록 빠르고 비싸다(용량작음) , 2로 갈수록 느리고 싸다(용량큼)
  • 지역성을 고려하여 메모리에 적재한다.
    • 시간적 지역성(가까운 미래에 또 접근할 가능성이 높은 것)
    • 공간적 지역성(특정 데이터와 가까운 주소가 순서대로 접근될 때, 근처에서 접근할 가능성이 높은 것)

3. I/O Device

  • 컴퓨터의 외부 손님
  • 컴퓨터 외부와의 소통을 담당한다. (입력/출력)
    • 입력) 키보드, 마우스, 터치패드
    • 출력) 스피커,모니터,프린터
  • Device Controller
    • CPU의 비서
      • 해당 I/O장치를 관리하는 일종의 작은 CPU이다.
      • 구성 : local buffer + 명령 레지스터
    • I/O 요청을 CPU대신 수행하고, 완료되면 CPU에 인터럽트를 걸어 작업이 끝났음을 알려준다.
    • ⇒ I/O 요청을 CPU대신 수행하고, 완료되면 DMA에 interrupt를 건다.

4. DMA controller (Direct Memory Access)

→ 디스크 같은 많은 데이터를 입출력하는 장치를 CPU가 매번 전송 제어한다면? 끔찍하다

  • CPU의 비서2
    • Device Controller에서 메모리로의 데이터 전송을 CPU 도움 없이 DMA 컨트롤러가 수행한다.
  • 실행과정
    1. I/O 장치의 interrupt를 받으면 local buffer에 있는 내용을 메모리로 복사한다.
    2. 메모리에 다 올리면 CPU에 interrupt를 걸어 다 수행 했음을 알린다.
  • 장점
    • CPU는 상태,제어 정보만을 교환하고, 데이터 전송은 비서(DMA controller)한테 시켜서 CPU의 실제 프로세스 작업 시간이 감소한다.
    • 프로그램 수행 중 인터럽트 발생 횟수 최소화 및 시스템 효율성 증대
    • CPU의 개입 없이 입출력장치와 주기억장치와의 데이터 직접 전송 가능
  • 주의
    • CPU랑 DMAC랑 둘 다 메모리 접근하면 충돌 가능
    • → memory controller 를 통해 누가 먼저 접근할 지 순서를 제어한다.

5. Timer

  • CPU를 특정 프로그램이 독점하는 것을 방지하기 위한 장치
  • 타이머는 매 클럭마다 1씩 감소하고, 세팅한 타이머가 0이 되면 Timer interrupt를 발생시켜 운영체제에게 CPU제어권을 넘긴다.
  • Time Sharing (시분할 처리방식)

2. 전반적인 작동 흐름

ex)사용자 프로그램은 직접 I/O작업을 실행할 수 없고, 운영체제를 통해서만 할 수 있다.

  1. 사용자 프로그램(A)이 I/O작업을 운영체제에게 요청한다. (CPU제어권을 운영체제에게 넘김)
  2. 운영체제는 I/O device controller한테 시킨다. (입출력 너가 해와)
    1. CPU는 다른 프로그램(B)에게 넘어간다. (CPU는 한시도 쉴 수 없어)
    2. (A 프로그램 상태 : Running → Blocked)
    3. I/O device controller는 열심히 입출력 처리한다. (근데 느림)
  3. I/O device controller가 작업을 끝내면 DMAC에게 interrupt 건다.
    1. DMAC은 I/O deivice controller의 local buffer에 있는 데이터를 메모리에 옮긴다.
    2. 다 옮겼으면 CPU에 interrupt 건다. (I/O작업 끝났고, 데이터도 메모리에 다 올려놨어요)
  4. CPU는 매 클럭마다 Interrupt를 확인하고, interrupt가 있다면 운영체제에 CPU 제어권이 돌아간다.
    1. 운영체제는 A프로그램 상태를 변경한다. (Blocked → Ready)
    2. 다시 CPU제어권을 돌리고 있던 프로그램(B)에게 반납한다.
  5. 사용자 프로그램 (A)는 Ready Queue에서 차례를 기다리고, 순서가 되면 다시 동작한다.

3. Interrupt

  • SW Interrupt (=Trap)
    • Exception : 프로그램이 오류를 범한 경우
    • System Call : 프로그램이 커널함수를 호출하는 경우
      • 사용자 프로그램이 운영체제의 서비스(I/O 등)을 받기 위해
      • 운영체제는 올바른 요청인지 확인한다.
  • HW Interrupt
    • 키보드 클릭, 프린터 , 마우스 클릭 등

'Operating System' 카테고리의 다른 글

[OS] 6. CPU 스케줄링  (0) 2022.04.24
[OS] 5. 쓰레드  (0) 2022.04.24
[OS] 4. 프로세스 시스템콜, 협력 - (3)  (0) 2022.04.24
[OS] 3. 프로세스 스케줄링 - (2)  (0) 2022.04.24
[OS] 2. 프로세스란? - (1)  (0) 2022.04.24
Comments