본문 바로가기
교육, 학습/CS스터디_반효경 운영체제

운영체제 - 운영체제(OS)란 2

by 개발하는 경제학도 2022. 1. 3.

강의 소개

현재 수강하고 있는 KOCW 내 이화여자대학교 운영체제(2017, 반효경) 강의의 내용을 정리하였습니다.

무료 강의로 운영체제 기본지식을 쌓고 싶으신 분들은 수강을 추천드립니다.


운영체제

2022.01.01 - [교육, 학습/CS스터디] - 운영체제 - 운영체제(OS)란

 

운영체제란

컴퓨터 하드웨어 바로 위에 설치되어, 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다.

 

운영체제의 의미

1) 좁은 의미의 운영체제

: 커널. 운영체제의 핵심 부분으로 메모리에 상주하는 부분이다.

(전원 -> 부팅 -> 운영체제가 메모리에 올라온다. 컴퓨터가 꺼질 때까지 메모리에 상주한다.)

2) 넓은 의미의 운영체제

: 커널뿐 아니라 각종 시스템 유틸리티를 포함한 개념이다.

 

운영체제의 종류

서버용, PC용, 스마트 디바이스용 운영체제

공개 소프트웨어(Open Source Software): 리눅스, 안드로이드(제일 아래단에 리눅스 커널이 들어있어서)

(<-> 비공개 소프트웨어: 윈도즈. 컴파일한 bin만 판매)

 

운영체제의 목적

컴퓨터 시스템의 자원(CPU, 메모리 등의 하드웨어 자원, 소프트웨어 자원)을 효율적으로 관리한다.

- 프로세서, 기억장치, 입출력 장치 등을 효율적으로 관리한다.

- 사용자 간 형평성 있는 자원 분배를 한다.

- 주어진 자원으로 최대한의 성능을 내도록 한다.

 

운영체제의 분류

1) 동시 작업 가능 여부

- 단일 작업

한 번에 하나의 작업만 처리할 수 이 있다. 1개의 명령에 대한 수행이 끝나기 전에 다른 명령이 수행될 수 없다.

- 다중 작업(multi tasking) 

동시에 2개 이상의 작업을 처리한다. 예) UNIX, MS Windows

> 효율성, 형평성 문제가 제기된 것도 다중 작업용 운영체제를 사용하여 시작된 것이다.

 

2) 사용자의 수

- 단일 사용자

EX. MS-DOS, MS Windows

- 다중 사용자(multi user)

: 1대의 컴퓨터에 여러 사용자가 터미널 형태로 동시에 접속해서 사용할 수 있는 체제이다.

> 좀 더 복잡한 문제들을 운영체제가 해결해야 한다. 예를 들어 사용자 A가 사용하는 파일, 메모리 공간을 사용자 B가 보면 안 된다던지 등.

EX. UNIX, Rinux, NT server

 

3) 처리 방식

- 일괄 처리(batch processing)

작업 요청을 일정량 모아서(어느 정도 쌓이면) 한꺼번에 처리하는 방식이다. 사용자 중심이 아닌 운영체제 위주의 방식으로 예전의 방식이다.

작업이 정말 종료될 때까지 기다려야 한다.

EX. 초기 Punch Card 처리 시스템

 

- 시분할 처리(time sharing)

여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할해서 사용하는 방법이다.

위의 일괄 처리 시스템보다 짧은 응답 시간을 가진다.

사용자가 컴퓨터를 동시에 사용할 때 시간을 나눠 자원을 나눠주기 때문에 사용자 각각이 느끼기에 마치 혼자사용하는 것과 같은 느낌을 준다.

interactive 한 방식이다. ( <-> batch )

 

- 실시간 처리

정해진 시간 안에 어떠한 일이 반드시 종료된다는 것이 보장되어야 하는 실시간 시스템을 위한 OS이다. 즉, 데드라인을 반드시 만족해야 하며 만약 데드라인을 어길 시 매우 치명적인 오류가 발생하는 시스템이다.

우리가 흔히 사용하는 시스템은 보통 데드라인이 없다. (보통 우리가 사용하는 시스템은 위의 시분할 처리 시스템이다)

EX. 원자로/ 공장 제어, 마사일 제어, 반도체 장비

실시간 시스템의 개념 확장: Hard realtime system(데드라인을 어기면 매우 큰일이 발생하는 시스템), Soft realtime systen(EX. 동영상을 볼 때, 초당 24 프레임을 읽어야 하는데 데드라인을 어기면 조금 불편해진다)

 

용어 설명

아래의 4가지 용어들은 컴퓨터에서 여러 작업을 동시에 수행하는 것(또는 할 수 있다는 것)을 뜻하지만, 용어 별로 각각 강조하는 부분이 조금 상이하다.

1) 멀티태스킹(Multitasking, 다중 작업)

1대의 컴퓨터 안에 여러 프로그램을 실행시키는 것이다.

 

2) Multiprogramming

메모리 측면을 강조한 용어로, 메모리에 여러 프로그램들이 동시에 올라가 있는 상황을 말한다.

 

3) 시분할 처리(Time sharing)

CPU를 강조한 용어로, 1대만 있는 CPU를 시간을 나누어 공유해서 사용하는 것이다. 

 

4) Multiprocess

여래 개의 프로세서가 서로 협력적으로 일을 처리하는 것을 뜻한다.

다량의 작업을 빠르게 처리하기 위해 여러 프로세서로 작업을 병렬적으로 기계어를 처리하여 시간이 단축된다.

 

** 참고) Multiprocessor은 1개의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 뜻한다. 

 

운영체제의 예

1) 유닉스

큰 서버를 위해서 만들어진 운영체제이다. 서버를 위한 운영체제이므로 여러 프로그램, 여러 사용자의 관리를 해주어야 한다.

특징

- 코드의 대부분이 C언어이다. 

기존의 하드웨어를 사용하기 위해 어셈블리 언어를 사용한 것과 달리, C언어를 만들어 사용했다.

C언어는 사람이 이해하기 쉬운 고급언어이지만 하드웨어와도 가깝다. 사람이 이해하기 쉬워 수정하는 것도 쉽다.

- 높은 이식성을 갖추고 있다.

C언어를 사용했기 때문에 어디서든 컴파일해서 사용할 수 있다. 그래서 여러 아키텍처에서 호환이 가능하다.

- 최소한의 커널 구조를 갖고 있다.

효율적이다.

- 복잡한 시스템에 맞게 확장이 용이하다.

-소스 코드가 공개되어 있다.

- 프로그램 개발에 용이한 운영체제이다.

- 다양한 버전이 있다.

System V, FreeBSD, SunOS, Solaris, Linux

 

2) DOS

마이크로소프트에서 단일 사용자, 단일 작업을 위해 만들어졌다.

 

3) Windows

단일 작업용 DOS가 이후 Windows로 업그레이드되면서 다중 작업용 GUI 기반 운영체제가 되었다.

 

 

출처: 운영체제(이화여자대학교, 2017 1학기 반효경)

댓글