운영체제와 정보기술의 원리: 운영체제 개요

송유나·2021년 1월 25일
0

강의: http://www.kocw.net/home/search/kemView.do?kemId=1046323

책은 따로 구매하였고 강의는 kocw에서 무료로 들을 수 있다.

1. 운영체제의 정의

  1. 운영체제란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어
  2. 컴퓨터 전원을 킴과 동시에 운영체제가 실행되는데 소프트웨어가 컴퓨터 시스템에서 실행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 함(운영체제도 하나의 소프트웨어)
  3. 운영체제 중 항상 필요한 부분만을 메모리에 올려놓는데 이 때 메모리에 상주하는 운영체제의 부분을 커널이라고 함(=좁은 의미의 운영체제)
  4. 넓은 의미의 운영체제는 커널을 포함한 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념

2. 운영체제의 기능

  • 운영체제는 하드웨어를 위한 역할과 사용자를 위한 역할 두 가지로 나눌 수 있음
  1. 하드웨어를 위한 역할: 컴퓨터 시스템 내의 자원을 효율적으로 관리
  2. 사용자를 위한 역할: 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공

3. 운영체제의 분류

  • 3가지의 방법으로 분류할 수 있음

1. 동시작업 가능 여부
1-1. 단일작업용 운영체제: 한 번에 하나의 프로그램만 실행시킬 수 있는 운영체제
1-2. 다중작업용 운영체제: 동시에 2개 이상의 프로그램을 처리할 수 있는 운영체제

2. 사용자의 수
2-1. 단일 사용자용 운영체제: 한 번에 한 명의 사용자만이 사용하도록 허용하는 운영체제
2-2. 다중 사용자용 운영체제: 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제(like 서버)

3. 처리방식
3-1. 일괄처리(batch processing): 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식
3-2. 시분할 방식(time sharing): 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식
3-3. 실시간 운영체제(real time): 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용(경성 실시간 시스템 hard realtime system & 연성 실시간 시스템 soft realtime system 으로 세분화)

4. 운영체제의 예

  • MS윈도우
  1. MS-DOS: 명령어 입력 방식, 초보자에게 어려운 것이 특징
  2. MS-WINDOW: 그래픽 인터페이스와 마우스 기능 지원, 플러그 앤 플레이 지원
  • 유닉스
  1. 대부분의 코드가 C언어로 작성: 당시 대부분의 운영체제가 어셈블리 언어로 작성되어 어려웠음
  2. 프로그램 개발에 용이: 여러 가지 유틸리티들 지원
  3. 소스 코드 공개: 연구, 개발 용이
  4. 높은 이식성: 소프트웨어를 다른 기종의 기계로 옮기는 것이 용이

5. 운영체제의 자원 관리 기능

  • 하드웨어 자원소프트웨어 자원으로 분류
    *하드웨어 자원: CPU, 메모리, 주변장치, 입출력 장치

🔥CPU 관리 방법: CPU 스케줄링🔥

  1. 목표: CPU를 가장 효율적으로 사용하면서도, 특정 프로세스가 불이익을 당하지 않도록 하는 것
  2. 기법: 선입선출(First Come First Served), 라운드 로빈(Round Robin), 우선순위(priority)
    2-1. 선입선출 기법(FCFS): 먼저 온 프로세스를 먼저 처리👉비효율적
    2-2. 라운드 로빈 기법: CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한,FCFS의 단점 보완하고자 고안된 기법
    2-3. 우선순위 스케줄링: 대기 중인 프로세스들에 우선순위를 부여하고 우선순위가 높은 프로세스에 CPU 먼저 할당👉우선순위는 과거 기록을 토대로 선정

🔥메모리 관리 방법🔥

  1. 목표: 프로그램이 CPU에서 실행되려면 해당 부분이 메모리에 올라가 있어야 하는데 한정된 메모리 공간에 여러 프로그램을 수용하기 위한 효율적인 관리가 목표
  2. 방식: 고정분할(fixed partition), 가변분할(variable partition), 가상메모리(virtual memory)
    2-1. 고정분할 방식: 물리적 메모리를 몇 개의 분할로 미리 나누어 관리
    👉융통성이 없음, 분할 개수만큼만 프로그램 적재 가능, 분할된 크기보다 큰 프로그램은 적재 불가능, 내부조각 발생
    ✔내부조각(internal fragmentation): 분할의 크기보다 작은 프로그램이 적재되는 경우 해당 분할 내에 남는 영역이 발생하는 것(=낭비되는 공간, 비효율의 상징)
    2-2. 가변분할 방식: 매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식
    👉물리적 메모리의 크기보다 더 큰 프로그램의 실행은 불가능, 외부조각 발생
    ✔외부조각(external fragmentation): 프로그램에 할당되지는 않았지만 그 크기가 작아 프로그램을 올리지 못하는 메모리 영역


2-3. 가상메모리 기법: 물리적 메모리보다 더 큰 프로그램이 실행되는 것을 지원👉가상메모리의 주소를 물리적 메모리의 주소로 매핑 후 현재 사용되고 있는 부분만 메모리에 적재(나머지는 하드디스크 같은 보조기억장치에 저장 = 스왑영역)
✔가상메모리 주소 공간은 페이지라는 동일한 크기위 작은 단위로 나뉘어 물리적 메모리와 스왑 영역에 일부분씩 저장 = 페이징 기법

🔥주변장치 및 입출력 장치 관리 방법🔥
1. 인터럽트라는 매커니즘을 통해 관리가 이루어짐
✔인터럽트: 주변장치가 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청할 때 발생시키는 신호
2. 방법: CPU가 CPU스케줄링에 따라 작업을 수행하다가 인터럽트가 발생하면 하던 일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행(하던 일 저장해두고 다시 인터럽트 처리 후 다시 돌아옴)
3. 컨트롤러(controller): 주변장치들이 각 장치마다 그 장치에서 일어나는 업무를 관리하기 위해 가지고 있는 일종의 작은 CPU👉해당 장치에 대한 업무를 처리하고, 이를 메인 CPU에 인터럽트를 발생시켜 보고하는 역할


작년에 정보처리기사를 공부하면서 배웠던 내용이라 생소하지는 않았다.
하지만 자격증을 위한 공부를 했고, 설명도 너무 어려웠기에 용어를 외워 자격증 취득에만 집중했다. 그래서 용어는 익숙해도 이게 무슨 의미인지 전혀 몰랐다ㅜㅜ

그런데 이 책은 너무 쉽게 설명이 되어 있다.
강의를 듣기 전에 정독을 먼저 하는데도 교양책 읽는 것 처럼 쉽게 이해가 되었다. 강의를 들으면서 한번 더 익히고, 마지막으로 블로그에 정리하면서 또 읽으니까 이제 운영체제라는 것이 이전처럼 그리 어렵게만 느껴지지는 않는다.

profile
개발자를 꿈꾸는 햇병아리입니다.

0개의 댓글