티스토리 뷰

 

 

#1. 운영체제란?

운영체제(Operating System)이란, 사용자에게 편리한 인터페이스 환경을 제공하고, 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어이다. 

 

 

#2. 운영체제의 역할

1. 자원 관리 

- 운영체제는 컴퓨터 자원을 응용 프로그램에게 적절히 분배하고 회수하면서 사용자가 원활하게 작업할 수 있도록 돕는다. 

 

2. 자원 보호

- 한 응용 프로그램이 할당된 영역을 넘어가 다른 응용 프로그램의 영역을 침범하지 못하도록 보호하는 것 역시 운영체제의 역할이다.

- 운영체제는 사용자가 컴퓨터 자원에 직접 접근하지 못하도록 숨기고, 운영체제가 정해둔 방법으로만 컴퓨터 자원에 간접적으로 접근할 수 있다. 은닉화, 캡슐화 되어있다고 생각하면 된다.

 

3. 하드웨어 인터페이스 제공

- 운영체제는 다양한 하드웨어 장치를 연결하여 사용할 수 있도록 해주는 하드웨어 인터페이스를 제공한다. 다양한 회사에서 제작한 마우스, 키보드와 같은 하드웨어 장치를 단순히 꽂기만 하면 바로 사용할 수 있도록 일관된 인터페이스를 제공한다.  

- 대표적으로 Plug and Play(PNP)를 생각하면 쉽다. 

 

4. 사용자 인터페이스 제공

- GUI(Graphical User Interface) 환경을 제공, 사용자가 쉽게 작업할 수 있도록 돕는다

 

 

#3. 운영체제의 목표

1. 효율성

- 무엇보다도 운영체제는 효율적이고 일처리가 빨라야 한다.

- 같은 자원을 관리하더라도 효율적으로, 적은 자원을 사용해서 빠른 결과를 낼 수 있어야 한다.

 

2. 안정성

- 운영체제는 안정성이 보장되어야 한다.

- Fault tolerant, 하드웨어나 소프트웨어 한 부분에 장애가 발생하더라도 나머지 시스템 운영에는 지장을 주지 않도록 하는 적절한 결함 포용 능력을 갖고 있어야 한다.

 

3. 확장성

- 운영체제는 다양한 시스템 자원을 추가하거나 제거하기가 편리해야 한다

- 하드웨어 인터페이스를 제공하여 다양한 하드웨어를 추가할 수 있도록 돕는다(PNP)

 

4. 편리성

- 사용자 인터페이스(GUI, 터치스크린...)을 제공하여 사용자의 편의를 돕는다.

 

 

#4. 운영체제의 역사

1950년대) 일괄 처리 시스템 (Batch Processing System)

- 다량의 작업을 일괄적으로 처리하는 시스템. 

- 작업 중간에 사용자가 데이터를 입력하거나 수정할 수 없다. 일괄 처리 시스템과 반대되는 개념으로 대화형 시스템이 있다.

- 프로그램이 입출력을 받지 않기때문에 온전히 CPU 작업에만 집중할 수 있다. (CPU 집중 작업)

- 윈도우 부팅 시 읽어오는 autoexec.bat 파일 등.. 부팅 시에 해야할 작업을 한 파일에 모아 일괄적으로 처리한다.

 

1960년대) 대화형 시스템 (Interactive System)

 

1960년대 후반) 시분할 시스템(Time Sharing System, Multitasking)

- 여러 작업을 조금씩 처리하여 작업들이 동시에 이뤄지는것 처럼 보이게 하는 시스템.

- 짧은 시간 간격(Time Slice)마다 번갈아가며 작업을 처리한다. 현대 대부분의 컴퓨터도 시분할 시스템이다.

- context switch에 시간이 소요되는 등 단점 또한 존재한다.

- 또한, 여러 작업을 번갈아가며 처리하다 보니 한 작업이 언제 끝날지 정확하게 보장하지 못한다.

 

-> 이를 보장하기 위한 실시간 시스템(Real Time System)이 존재한다

- 특정 시간 내에 작업이 종료되는 것을 보장하는 시스템. 공장, 산업시설 같은 곳에서 사용된다.

 

1970년대 후반) 분산 시스템(Distributed System)

- 네트워크 상에 분산되어있는 여러 컴퓨터로 작업을 처리하고, 그 결과를 상호 교환하도록 구성한 시스템

- 값이 싸고 작은 컴퓨터를 모아 대형 컴퓨터에 버금가는 시스템을 구성한 것.

- LAN과 TCP/IP 개념이 등장하고 인터넷 환경이 조성되고 난 이후에 분산 시스템 개념이 등장할 수 있었다.

 

1990년대 ~ 현재) 클라이언트 - 서버 시스템

 

2000년대 초반 ~ 현재) P2P(Peer to Peer) 시스템

- P2P는 서버를 거치지 않고 사용자와 사용자가 직접 연결된다.

- 토렌트가 대표적인 P2P. "블록 체인" 역시 P2P 기반으로 이뤄져 있다.

 

이외)

그리드 컴퓨팅 - 분산 시스템의 한 분야로, 대용량의 데이터 연산을 소규모로 나눠 여러대의 컴퓨터로 분산시킨다.

-> 웹하드와 같은 곳에서 그리드 컴퓨팅을 통해 몰래 사용자의 컴퓨터 자원을 사용하는 것. 웹 서버의 부담을 사용자에게 일부 전가시킨다. (Grid Delivery)

 

클라우드 컴퓨팅 - 언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨터 환경

 

#부록) SaaS, IaaS, PaaS?

 

(운영체제 1-2) IaaS, PaaS, SaaS

클라우드 서비스의 분야는 크게 SaaS, IaaS, PaaS 로 나눌 수 있다. 클라우드가 없는 경우 - 사용자가 서버 장비부터 하드웨어, OS, 네트워크 까지 전부 다 설정하고 작업해야 한다. IaaS(Infrastructure as

sedangdang.tistory.com

(여기 쓰려다가 너무 길어져서 따로 뺌)

 

 

#5. 운영체제의 구조

 

 

운영체제는 크게 두 부분으로 나뉜다.

사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하거나, 실행 결과를 사용자와 응용 프로그램에게 전달하는 "인터페이스" 부분과, 운영체제의 핵심 부분을 모아놓은 "커널"으로 구성된다.

 

# 시스템 호출 (System Call)

시스템 호출은 커널이 자신을 보호하기 위해 만든 인터페이스이다. 앞서 배웠다시피 운영체제는 사용자가 컴퓨터 자원에 직접 접근하는 것을 차단한다. 그 대신에 시스템 호출이라는 인터페이스를 이용해 간접적으로 접근할 수 있도록 제공한다. 사용자가 커널 영역에 진입할 수 있는 유일한 수단이며, 운영체제는 이를 통해 컴퓨터 자원을 보호한다.

 

[정리]

  1. 시스템 호출은 커널이 제공하는 시스템 자원의 사용과 연관된 함수이다.
  2. 응용 프로그램이 하드웨어 자원에 접근하거나, 운영체제가 제공하는 서비스를 이용하고자 한다면 시스템 호출을 사용해야 한다. 
  3. 시스템 호출은 사용자가 자발적으로 커널 영역에 진입하기 위한 유일한 수단이다

 

# (디바이스) 드라이버

앞서 배웠다시피 운영체제는 하드웨어 인터페이스를 제공한다.

운영체제는 하나지만, 하드웨어는 무수히 많다. 운영체제가 하드웨어 각각에 맞는 드라이버를 전부 지원하기란 어렵다. 따라서, 운영체제는 하드웨어 인터페이스를 제공하고, 하드웨어 제작사에서 이에 맞춘 디바이스 드라이버를 제작하는 것이 합리적이다. 

단순한 키보드나 마우스는 운영체제가 커널에 드라이버를 미리 포함해두어 꽂기만 하면 바로 사용 가능하지만, 프린터나 스캐너 등을 사용하기 위해서는 별도의 드라이버를 설치해야 했던 경험이 있을 것이다. 그 드라이버가 바로 이 드라이버이다.

 

위 사진에서 드라이버가 운영체제의 하단 전체를 감싸고 있지 않은 이유도 커널이 기본으로 제공하는 드라이버가 있고 그렇지 않은 드라이버도 존재하기 때문이다.

 

 

'학교공부 > 컴퓨터구조론' 카테고리의 다른 글

(운영체제 1-3) 커널의 구성  (0) 2021.11.18
(운영체제 1-2) IaaS, PaaS, SaaS  (0) 2021.11.18
컴구) 용어 정리  (0) 2021.11.05
컴구) 폰 노이만 구조  (0) 2021.11.05
컴구) 컴퓨터의 발달  (0) 2021.11.03
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함