데이터 엔지니어

[OS Chapter 1] Introduction to Operating Systems 본문

컴퓨터 과학(Computer science)/운영체제(Operating System)

[OS Chapter 1] Introduction to Operating Systems

kingsmo 2020. 10. 11. 14:31

OS 지식 함양을 위해 스터디를 꾸리게 되었습니다.

7주동안 이루어지는 스터디로 각자 챕터별로 강의를 정리하고 공유하는 방식입니다.

강의는 kocw 이화여대 반효경 교수님 강의 진행합니다.

이번 포스팅에는 챕터 1을 정리해보도록 하겠습니다!

 

깃헙레포: github.com/smothly/OS-study-7week-challenge

 

smothly/OS-study-7week-challenge

7주동안 진행 되는 OS 스터디. Contribute to smothly/OS-study-7week-challenge development by creating an account on GitHub.

github.com


운영체제(Operating Systems): 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층

운영체제 출처:https://woovictory.github.io/img/os_info_1.png

 

운영체제의 의미

  • 좁은 의미: 커널, 운영체제의 핵심 부분으로 전원을 켠다음에 메모리에 항상 상주하는 부분
  • 넓은 의미: 커널뿐만 아니라 주변 시스템 유틸리티를 포함한 개념

운영체제의 목표

  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
    • 여러사용자들이 하나의 컴퓨터에서 동시에 여러 프로그램을 실행해도 독자적인 컴퓨터를 쓰는 것처럼 느끼게 하기 위함
    • 프로그램을 짧은 시간 간격으로 cpu를 할당
    • 프로그램에 메모리 공간을 적절하게 분배
  • 컴퓨터 시스템의 자원을 효율적으로 관리
    • 자원
      • 하드웨어: cpu, 메모리, 입출력 장치
      • 소프트웨어: 프로세스, 파일, 메시지
    • 주어진 자원을 최대한 관리해야 하나 형평성을 고려해야 함

쉬어가는 예시 코너

Q. 각 자원을 1/n 로 줄이는게 가장 좋은 선택인가?

A. 아니다. 효율성이 최우선 목표이다. 하지만, 형평성도 고려해야한다.

 

예시로는 국가예산을 각 행정부처에게 얼마만큼 부여할 것인지를 생각해보면 된다.

모든 부처에게 1/N을 부여하면 예산이 많이 필요한 부서는 부족하고, 예산이 조금 필요한 부서는 남게 될 것이다.

하지만, 특정부서에게만 많은 예산을 할당하게 되면 형평성에 어긋나는 문제가 생긴다.

OS도 예산문제와 똑같다!


운영체제의 분류

 

동시 작업 가능 여부

  • single / multi로 구분
  • single은 요새 쓰이지 않음! 예시로는 MS-DOS

사용자의 수

  • single / multi로 구분 
  • 동시 작업 가능 여부와 비슷함. 
  • single은 MS-DOS, MS Windows, multi는 UNIX, NT server

처리 방식

  • 일괄처리(batch processing)
    • 한꺼번에 처리
  • 시분할(time sharing)
    • 여러 작업을 일정한 시간 단위로 분할하여 사용
    • 짧은 응답시간을 가져 interactive함
    • 현재 쓰이는 방식
  • 실시간(Realtime OS)
    • 정해진 시간 안에 어떤 일이 반드시 종료됨이 보장됨
    • 원자, 미사일 제어, 반도체 등등 정확한 시간이 보장되어야 하는 분야에 쓰임

현재는 multi tasking, multi user, time sharing 운영체제 방식이다.


용어

  • multitasking: 동시에 작업, 실제로는 하나의 연산을 하지만 동시에 하는 것처럼 느껴짐
  • multiprogramming: 메모리에 동시에 여러 프로그램이 올라감
  • time sharing: 시분할 cpu쪽을 강조하여 cpu의 시간을 분할하여 나누어 쓴다는 의미
  • multi process: process를 여러개 실행,  위의 용어들과 비슷.

위 4가지용어는 유사한 용어로 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻한다.

* multi processer: cpu가 여러개 붙은 컴퓨터를 뜻합니다. os과목에는 기본은 하나의 cpu이다.

 

운영체제 예시

  • 유닉스(UNIX): c언어를 만들어서 유닉스를 개발함 / 소스 코드 공개(Linux) / 이식성 높음 / 최소한의 커널
  • 윈도우(Windows): DOS(메모리 640KB)에서 발전 / GUI / PnP

운영체제의 구조

운영체제의 구조 출처:https://core.ewha.ac.kr/publicview/C0101020140307151724641842?vmode=f

CPU: CPU 스케줄링

  • 예시 코너
  • Q. 은행업무를 순차적으로 해결하면 어떻게 될까?
  • A. 1시간 걸리는 손님이 있고 1분걸리는 손님이 있으면 어떻게 분배해야 할까? 이게 최선인가? 를 고민해보면 됩니다.

Memory: 메모리 관리

  • 위의 행정부처 예시 참조

Disk: 파일 관리

  • 디스크 헤더를 어떻게 위치시킬지의 문제이다.
  • 예시 코너
  • Q. 엘리베이터에서 100층 1층 5층 이렇게 버튼이 눌렸으면 어떻게 처리할까?
  • A. 순서대로 가면 헤드가 너무 많이 움직인다. 100층에서 1층을 내려가는 도중에 5층에 멈추면 5층도 포함시켜서 가는게 엘리베이터의 움직임을 최소화 한다.

주의!

CPU는 너무 빠르기 때문에 이걸 어떻게 관리할 것이냐

Disk는 어떻게 디스크 헤드의 움직임을 최소화하며 루트를 짤까의 관점의 차이가 있음

 

I/O device: 입출력 관리

  • 너무 느림
  • 인터럽트 기반으로 관리함

프로세스 관리

  • 자원 할당 및 반환

그외

  • 운영체제 보호 네트워킹 명령어 해석기

내가 OS라 생각하고 어떻게 효율적으로 관리할지 생각하고 이 수업을 듣자!

Comments