본문 바로가기
  • 실행력이 모든걸 결정한다
OS 개념 정리

[OS] 운영체제와 하드웨어 기본

by 김코더 김주역 2021. 5. 7.
반응형

1. 운영체제

Operating System

사용자가 컴퓨터를 쉽게 다룰 수 있는 환경을 제공해주고 시스템 자원들을 효율적으로 관리해주는 소프트웨어

 

1) 운영체제의 역할

  • 편리한 User Interface(GUI, CUI) 제공
  • 효율적인 HW, SW 자원 관리
  • 프로세스 관리(스케쥴링)와 쓰레드 관리
  • 시스템 보호

 

 

2) 운영체제의 구조

깊은 순서대로 [하드웨어 -> 드라이버 -> Kernel -> System Call Interface -> Shell -> 응용 프로그램]이다. 여기서 드라이버 -> Kernel -> System Call Interface -> Shell 부분이 운영체제다.

 

(1) 드라이버

- 하드웨어를 제어한다.

 

(2) Kernel

- 운영체제의 핵심이 되는 프로그램들중 하나로 시스템의 모든 것을 통제한다.

※ 커널은 단일 구조, 계층 구조, 마이크로 커널 구조가 있다. 마이크로 커널 구조란 커널에 필수 기능만 포함하고 기타 기능은 사용자 영역에서 수행하는 구조이다.

 

(3) System Call Interface

- 운영체제가 제공하는 서비스에 대한 추상화 계층이며, 응용프로그램과 Kernel의 통로 역할을 한다. 이로써 컴퓨터 자원에 대한 직접 접근을 차단해준다.

※ modebit : System Call이 동작할 때 커널 모드(0)와 유저 모드(1)를 구분하기 위한 비트다. 유저 모드는 컴퓨터 자원에 함부로 침범하지 못하는 모드고, 커널 모드는 모든 컴퓨터 자원에 접근할 수 있는 모드다. 예를 들어, 파일 시스템의 파일에 접근할 때는 반드시 시스템콜을 통해 커널 모드로 들어가서 파일을 읽고 그 이후에는 유저 모드로 나와서 이후 로직을 수행한다.

 

(4) Shell

- Kernel을 감싸고 있는 층이며, 바로 위에 언급한 System Call Interface를 제공하는 역할을 한다.

 

 

3) 운영 체제의 구분

(1) 동시 사용자 수

 

(2) 동시 실행 프로세스 수

 

(3) 작업 수행 방식

<1> 순차 처리 시스템

<2> Batch Processing System(일괄 처리 시스템)

- 시스템 지향적

- 장점 : 자원 공유, 처리 효율 향상(시스템 입장)

- 단점 : 같은 유형의 작업들이 모이기를 기다려야 하기 때문에 생산성이 저하될 수 있고 응답 시간이 김(사용자 입장)

<3> Time Sharing System(시분할 시스템)

- 사용자 지향적

- 여러 사용자가 자원을 동시에 사용

- 장점 : 응답시간 단축, 생산성 향상(사용자 입장)

- 단점 : 통신 비용 증가, 동시 사용자수 증가에 따른 시스템 부하 가능성

<4> Personal Computing

- 개인이 시스템 전체를 독점

- 여러 사용자들을 처리하지 않아도 되기 때문에 OS가 상대적으로 단순함

<5> Parallel Processing System(병렬처리 시스템)

- 단일 시스템 내에서 둘 이상의 프로세서 사용

- 자원 공유, 성능 향상

- 신뢰성 향상 : 한 프로세서가 고장나도 정상 동작이 가능하게 설계 가능

- 프로세서간 관계와 역할 관리가 필요

- CPU가 많아질 경우 공간적 한계 있음

<6> Distributed Processing System(분산 처리 시스템)

- 네트워크를 기반으로 구축된 병렬처리 시스템

- 물리적인 분산

- 각 구성 요소들간의 독립성을 유지하면서 공동 작업도 가능

- 장점 : 성능, 신뢰성, 확장성이 좋음

- 단점 : 구축, 관리가 어려움.

<7> Real-time System(실시간 시스템)

- 제한시간 내에 서비스 제공

 

 

4) 운영체제의 기능

(1) 프로세스(Process) 관리

- 프로세스 : kernel에 등록된 실행 단위, 실행중인 프로그램

- 프로그램 : 컴퓨터에게 주어지는 명령어의 집합체

- PCB(Process Control Block) : 프로세스 관리에 필요한 정보가 저장되어 있는 곳

 

(2) 프로세서(Processor) 관리

- 프로세서 : 프로세스를 동작시키는 하드웨어

 

(3) 메모리 관리

 

(4) 파일 관리

- 파일 : 논리적 데이터 저장 단위

 

(5) 입출력 관리

 

(6) 보조 기억 장치 및 기타 주변장치 관리

 

 

 

2. 하드웨어

1) 프로세서 : 연산 수행, 모든 컴퓨터 장치의 동작 제어

(1) 프로세서 종류

- CPU(중앙처리장치)

- GPU(그래픽카드)

- 응용 전용 처리장치

 

(2) 레지스터

- 프로세서 내부에 있는 메모리

- 프로세서가 사용할 데이터 저장

- 컴퓨터에서 가장 빠른 메모리

 

(3) 레지스터의 종류

<1> 가시 레지스터 : 사용자가 볼 수 있는 레지스터

- 데이터 레지스터

- 주소 레지스터

<2> 불가시 레지스터 : 사용자가 볼 수 없는 레지스터

- 프로그램 카운터(PC) : 다음에 실행할 명령어의 주소 보관

- 명령어 레지스터(IR) : 현재 실행하는 명령어를 보관

- 누산기 : 연산 데이터를 일시적으로 저장

- 메모리 주소 레지스터(MAR)

- 메모리 버퍼 레지스터(MBR)

 

 

2) 메모리 : 저장/기억장치. 프로그램, 사용자 데이터 등을 저장

 

메모리 종류

(1) 레지스터 : 가장 용량이 작고 속도가 빠르고 값이 비쌈

 

(2) 캐시

- 프로세서 내부에 있는 메모리.

- CPU와 메인 메모리의 속도 차이에 의한 병목 현상을 해소함.

- 하드웨어적으로 관리됨

- 해당 데이터 블록이 캐시 안에 존재하는 것을 cache hit라고 하고, 존재하지 않는 것을 cache miss라고 한다.

- 예) L1 캐시, L2 캐시

※ 데이터 블록 : 캐시는 해당 데이터를 데이터 블록째로 가져온다.

※ 지역성 : 캐시는 지역성의 원리를 따른다.

- 공간적 지역성 : 참조한 주소와 인접한 주소를 참조하는 특성 - 예) 순차적 프로그램 수행

- 시간적 지역성 : 한 번 참조한 주소를 다시 참조하는 특성 - 예) 반복문

※ 병목 현상 : 하나의 구성 요소로 인해 전체 시스템의 성능이 제한을 받는 현상

 

(3) 주기억장치(메인 메모리)

- 프로세서가 수행할 프로그램과 데이터를 이 곳에 옮겨야 실행할 수 있음.

- CPU와 보조기억장치의 속도 차이에 의한 병목 현상을 해소함.

- 예) DRAM 등

 

(4) 보조기억장치(스토리지)

- 가장 용량이 크고 속도가 느리고 값이 쌈

- 프로세서가 직접 접근할 수 없음.

- 여기서 메인메모리 자체 용량보다 큰 용량을 가지는 프로그램은 가상 메모리를 이용한다.

- 예) 하드 디스크 등

※ 가상 메모리 : 하드 디스크의 일부를 메모리처럼 사용

 

 

3) 주변 장치 : 프로세서와 메모리를 제외한 하드웨어들

(1) 주변 장치 종류

<1> 입력 장치 - 키보드, 마우스, 터치 인터페이스 등

<2> 출력 장치 - 모니터, 프린터, 스피커 등

<3> 저장 장치 - USB, CD 등

<4> 기타 주변 장치 - 네트워크 모뎀(변복조기) 등

 

(2) 장치 드라이버 : 주변 장치 사용을 위한 인터페이스 제공

※ 인터페이스 : 상호 간의 통신을 위한 프로토콜

 

 

4) 시스템 버스 : 하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로

(1) 종류

<1> 데이터 버스 : 데이터 버스를 구성하는 배선 수는 프로세서가 한 번에 전송할 수 있는 비트 수(워드)를 결정.

<2> 주소 버스 : 주소 버스를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인 메모리의 최대 용량.

<3> 제어 버스 : 프로세서가 시스템의 구성 요소를 제어하는데 사용. 제어 신호로 연산장치의 연산 종류와 메인 메모리의 동작을 결정.

 

(2) 동작 : 아래 <1> <2> <3> 과정을 반복

<1> 프로그램 카운터(PC)에 저장된 주소를 내부 버스를 이용하여 메모리 주소 레지스터(MAR)에 전달

<2> 메모리 주소 레지스터(MAR)에 저장된 주소에 해당하는 메모리 위치에서 명령어를 인출하고, 이 명령어를 메모리 버퍼 레지스터(MBR)에 저장함. 그리고 제어장치에서는 다음 명령어를 인출할 수 있게 하기 위해 프로그램 카운터(PC)를 1 증가시킴

<3> 메모리 버퍼 레지스터(MBR)에 저장된 내용은 명령어 레지스터(IR)에 전달함

 

 

참고 자료 : 김덕수 교수님 - www.youtube.com/playlist?list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN

반응형

'OS 개념 정리' 카테고리의 다른 글

[OS] 동기화(2) - OS Solutions  (0) 2021.05.28
[OS] 동기화(1) - 동기화 기초, SW/HW Solutions  (0) 2021.05.24
[OS] Scheduling  (0) 2021.05.19
[OS] Thread  (0) 2021.05.13
[OS] 프로세스  (0) 2021.05.12

댓글