[운영체제] 01 Introduction to Operating Systems

gramm·2021년 1월 20일
1

운영체제

목록 보기
1/14
post-thumbnail
post-custom-banner

내용 출처

KOCW 반효경 교수님 <운영체제> 강의
책 <운영체제와 정보기술의 원리>

반효경 교수님의 <운영체제> 강의 내용을 기반으로 정리했으며,

교수님의 저서 <운영체제와 정보기술의 원리>에서 추가할 만한 내용을 이와 같은 인용문 형식으로 추가함.




근대적 컴퓨터의 역사

제 1세대 컴퓨터 (1940년대 후반~)

  • 진공관 기반 컴퓨터

제 2세대 컴퓨터 (1950년대 후반~)

  • 트랜지스터 기반 컴퓨터

제 3세대 컴퓨터 (1960년대 후반~)

  • 집적회로(IC) 기반 컴퓨터

  • 집적회로 : 수백 ~ 수천 개의 트랜지스터를 단 한 개의 작은 실리콘 칩에 통합회로로 묶는 기술

제 4세대 컴퓨터 (1970년대 중반~)

  • 고밀도 집적회로(LSI)초고밀도 집적회로(VLSI) 기반 마이크로컴퓨터
  • 마이크로프로세서의 보급은 개인용 컴퓨터 혁명을 야기함

현대의 컴퓨터

범용 컴퓨터

  • 임의의 목적으로 사용될 수 있는 컴퓨터
  • 규모에 따라 슈퍼컴퓨터, 메인프레임 컴퓨터, 워크스테이션, 개인용 컴퓨터 등으로 나누어짐.

임베디드 컴퓨터

  • 특수한 목적을 위해 각종 장치의 제어용으로 내장되는 컴퓨터

클라우딩 컴퓨팅

  • 고성능 컴퓨터를 원격으로 사용하고 사용료를 지불하는 방식
  • 각 사용자는 자신만의 독자적인 컴퓨터가 존재한다고 인식한다. 이렇게 사용자가 느끼는 독자적인 컴퓨터를 가상머신(virtual machine), 이를 지원해주는 기술을 가상화(virtualization) 기술이라고 한다.

운영체제(Operating System)란?

사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

  • 협의의 운영체제 = 커널(kernel)
    운영체제의 핵심 부분으로 메모리에 상주하는 부분

  • 광의의 운영체제
    커널을 포함하여, 각종 주변 시스템 유틸리티를 포함한 개념


운영 체제의 목적

1) 컴퓨터 시스템의 자원을 효율적으로 관리 (효율성 + 형평성)

  • 하드웨어 자원 : 프로세서, 기억장치, 입출력 장치
  • 소프트웨어 자원 : 프로세스, 파일, 메시지

그래서 운영체제를 자원관리자(resource manager)라고 부르기도 함.

2) 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공


운영 체제의 분류

1) 동시 작업 가능 여부

  • 단일 작업(single tasking)
    ex. MS-DOS
  • 다중 작업(multi tasking)
    ex. UNIX, MS Windows

2) 사용자의 수 (여러 계정의 동시 접속 가능 여부)

  • 단일 사용자(single user)
    ex. MS-DOS, MS Windows
  • 다중 사용자(multi user)
    ex. UNIX, NT server

3) 처리 방식

  • 일괄 처리(batch processing)
    작업 요청의 일정량을 모아서 한꺼번에 처리
    작업이 완전 종료될 때까지 기다려야 함.

  • 시분할(time sharing)
    여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
    일괄 처리 시스템에 비해 짧은 응답 시간을 가짐 (ex. UNIX)

    대화형 시스템(interactive system) : 사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템

  • 실시간(Realtime OS)
    정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되는 시스템

    • Hard realtime systems (경성 실시간 시스템)

      Deadline이 매우 중요한 경우 (원자로/공장 제어, 미사일 제어)

    • Soft realtime systems (연성 실시간 시스템)

      Deadline이 있지만 중요성은 덜한 경우 (영화 스트리밍, 내비게이션)


우리가 배우는 운영체제는 다중 작업 / 다중 사용자 / 시분할 방식이다!


운영체제의 예

1) UNIX 계열

  • 코드를 대부분 C언어로 작성
    (C언어 자체가 UNIX 프로그래밍을 위해 만들어짐)

2) WINDOWS 계열

  • 개인용 컴퓨터를 위해 만들어진 운영체제

MS 윈도우의 특징 = 플러그 앤 플레이(plug and play)

시스템에 새로운 하드웨어를 장착하면 운영체제가 자동으로 하드웨어를 감지하여 그에 맞게 설정된다.


운영체제의 구조

  • CPU 스케줄링 : 누구한테 CPU를 줄 것인가 (5단원 내용)

① 선입선출 기법
먼저 온 것을 먼저 처리해주는 방식 (비효율적)

② 라운드 로빈 기법
CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한하는 방식

③ 우선순위 스케줄링
CPU 사용 대기 중인 프로세스들에 우선순위를 부여하고, 그에 따라 CPU를 할당하는 방식

  • 메모리 관리 : 한정된 메모리를 어떻게 나누어 쓸 것인가 (8, 9단원 내용)

① 고정분할 방식
물리적 메모리를 몇 개의 분할로 미리 나누어 관리하는 방식
분할이 고정적이므로, 분할의 크기보다 작은 프로그램이 적재되는 경우 남는 공간이 발생한다. 이를 내부조각이라고 한다.

② 가변분할 방식
매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식
내부조각은 발생하지 않는다.
대신 프로그램에 할당되지는 않았지만 그 크기가 작아 프로그램을 올리지 못하는 메모리 영역인 외부조각이 발생할 수 있다.

③ 가상메모리 기법
가상메모리를 활용하는 방식
물리적 메모리보다 더 큰 프로그램이 실행되는 것을 지원한다.

  • 파일 관리(디스크 스케줄링) : 디스크에 파일을 어떻게 보관할 것인가
    (디스크는 헤드를 움직이며 읽고 쓰는데, 헤드의 이동 거리를 어떻게 최소화할 것인가의 문제)

  • 입출력 관리 : 입출력 장치와 컴퓨터 간에 어떻게 정보를 주고 받게 할 것인가 (인터럽트(interrupt)에 기반)

  • 그 외 : 프로세스 관리, 보호 시스템, 네트워킹, 명령어 해석기 등


기타 내용

<컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻하는 용어들>

Multitasking
Multiprogramming - 여러 프로그램이 메모리에 올라가 있음을 강조
Time sharing - CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
Multiprocess

cf) Multiprocessor : 하나의 컴퓨터에 CPU가 여러개 붙어 있음

profile
I thought I introduced
post-custom-banner

0개의 댓글