운영체제 ( OS : Operating System )
컴퓨터 자원(하드웨어)을 효율적으로 관리하여 사용자에게 서비스를 제공하는 역할을 한다.
컴퓨터 하드웨어
컴퓨터 하드웨어는 크게 1) 프로세서 2) 메모리, 3) 주변장치로 나뉜다.
1) 프로세서 : 계산 담당
- CPU ( CPU ) : 컴퓨터의 모든 장치의 동작 제어를 담당 한다.
- 그래픽카드 (GPU)
- 응용 전용 처리장치 등
레지스터
프로세서 내부에 있는 메모리로, 프로세서가 사용할 데이터를 저장하며, 컴퓨터에서 가장 빠른 메모리이다.
종류
- 용도별 : 전용레지스터
- 사용자 정보 변경 가능 여부별 : 사용자 가시 레지스터, 사용자 불가시 레지스터
- 저장 정보별 : 데이터 레지스터, 주소 레지스터, 상태 레지스터
** 사용자 가시 레지스터 **
- 데이터 레지스터 ( DR:Data Register ) : 함수 연산에 필요한 데이터 저장
- 주소 레지스터 ( AR:Address Register ) : 주소나 유효 주소 계산시 필요한 주소의 일부분 저장
** 사용자 불가시 레지스터 **
- 프로그램 카운터 ( PC: Program Counter ) : 다음에 실행할 명령어의 주소를 보관하는 레지스터이다.
- 명령어 레지스터 ( IR : Instruction Register ) : 현재 실행하는 명령어를 보관하는 레지스터이다.
- 누산기 ( ACC: ACCumulator) : 컴퓨터의 중앙 처리 장치(CPU)에서 중간 산술 논리 장치 결과가 저장되는 레지스터이다. 연산 의 결과를 중간에 일시적으로 저장한다.
- 메모리 주소 레지스터 ( MAR : Memory Address Register ) : CPU가 현재 참조하는 데이터의 주소를 일시적으로 저장하는 레지스터이다.
- 메모리 버퍼 레지스터 ( MBR : Memory Buffer Register ): 메모리 자체에 저장할 데이터 자체를 보관하는 버퍼레지스터이다.
2) 메모리 : 데이터 저장 담당
- 주 기억장치 ( = 메인메모리 = DRAM ) : 프로세서가 수행할 프로그램과 데이터를 저장한다. 디스크 입출력 병목현상을 해소한다.
- 보조 기억장치
* 메모리의 종류
‣ 레지스터
‣ 캐시
- 프로세서 내부에 잇는 메모리로 속도가 빠르다. 메인메모리(=DRAM)의 입출력 병목현상을 해소한다.
- 프로세서가 특정 데이터에 대해 작업하려 할 때, 우선 캐시에 해당 데이터가 존재하는지 여부를 확인하고 없으면 메인 메모리에 접근하여 해당데이터를 가져와 사용하고, 캐시에 해당 데이터를 저장해둔다. 이후에 해당 데이터에 다시 접근할 때는 메인메모리에까지 요청하지 않고, 이전 작업에서 캐시에 저장해둔 데이터를 이용하여 더욱 빠른 작업이 가능하다.
** 캐시 히트 : 캐시에 데이터가 존재하는 경우
** 캐시 미스 : 캐시에 해당 데이터가 존재하지 않는 경우
‣ 메인 메모리 : DRAM
‣ 보조기억장치 : 하드디스크
- Hard Disk, CD, USB 등
- 프로그램과 데이터를 저장한다.
- 프로세서가 직접 전급할 수 없고, 주기억장치를 거쳐서 접근해야 한다. 즉 보조기억장치의 데이터를 주기억장치에 올린 후에 프로세서가 보조기억장치의 데이터를 이용할 수 있다. ( 프로세스가 접근가능한 것은 메모리까지이다. )
** 가상메모리 (Virtual memory) : 하드디스크의 일부를 메모리처럼 사용
아래로 갈수록 용량은 커지고, 속도와 가격은 떨어진다. (용량 : 레지스터 < 캐시 < 메인메모리 < 보조기억장치 | 속도: 보조기억장치 < 메인메모리 < 캐시 < 레지스터 )
시스템 버스 ( System Bus )
하드웨어들이 데이터 및 신호를 주고받는 물리적 통로를 의미한다.
- 데이터 버스 : 프로세서와 메인 메모리, 주변 장치 사이에서 데이터를 전송한다.
- 주소 버스 : 프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송한다.
- 제어 버스 : 프로세서가 시스템의 구성요소를 제어하는 데 사용된다. 제어 신호로 연산장치의 연산 종류와 메인 메모리의 읽기나 쓰기 동작을 결정한다.
흐름
PC에 저장된 주소를 MAR에 전달
→ MAR에 저장된 주소에 해당하는 메모리 위치에서 명령어를 인출한 후 해당 명령어를 MBR에 저장
이때 제어장치는 메모리에 저장된 내용을 읽도록 제어 신호를 발생시킨다.
→ 다음 명령어 인출을 위해 PC를 증가시킨다.
→ MBR에 저장된 내용을 IR에 전달한다.
** PC: Program Counter : 다음에 실행할 명령어의 주소를 보관하는 레지스터이다.
** IR : Instruction Register : 현재 실행하는 명령어를 보관하는 레지스터이다.
** MAR : Memory Address Register : CPU가 현재 참조하는 데이터의 주소를 일시적으로 저장하는 레지스터이다.
** MBR : Memory Buffer Register ): 메모리 자체에 저장할 데이터 자체를 보관하는 버퍼레지스터이다.
3) 주변장치
- 입력장치 : 키보드, 마우스 등
- 출력장치 : 모니터, 프린터, 스피커 등
- 저장장치 : usb, cd 등
** 장치 드라이버 : 주변 장치 사용을 위한 인터페이스를 제공하는 역할
운영체제의 역할
1) 사용자 인터페이스
- CUI ( Character User Interface ) : character를 기반으로 하여 컴퓨터와 통신하는 형태
- GUI ( Graphical User Interface ) : 그림이나 이미지 등을 기반으로 하여 컴퓨터와 통신하는 형태로, 현대에 가장 일반적인 형태
- EUCI ( End-User Comfortable Interface ) : 특정한 목적을 위해 만들어진 기기의 인터페이스 형태. ex) mp3, 전자사전 등...
2) 자원 관리
- HW Resource ( processor, memory, I/O devices 등...)
- SW Resource ( file, application, message, signal 등...)
3) 프로세스와 스레드 관리
프로세스는 실행의 주체, 스레드는 프로세스에서 실제 작업이 실행되는 단위.
4) 시스템 관리 ( 시스템 보호 )
컴퓨터 시스템 구성
컴퓨터 하드웨어가 존재하고, 운영체제를 통해 하드웨어를 관리한다. 어플리케이션 즉 프로그램들은 운영체제를 통해 자원을 할당받아 실행된다.
* Kernel (= resident program)
운영체제의 핵심으로, 메모리 관리, 프로세서 스케줄링, 프로세스 간 통신, 파일 시스템 관리, 입출력관리, 네트워크 관리의 기능을 한다.
* System Call Interface
커널의 기능 중 일부를 제공하는 통신 수단이다.
컴퓨터 실행을 위해 운영체제는 많은 부분을 관리하기 때문에, 운영체제의 모든 부분을 조작할 수 있게 되면, 운영체제 기능상의 문제가 발생할 수 있다. 때문에 기본적으로는 운영체제의 기능을 조작할 수 없으며, System Call Interface을 통해 운영체제의 일부 기능만 조작할 수 있도록 구성되어 있다.
* 커널에 대한 시스템 호출 인터페이스
- 신호, 단말기 처리, 문자 입출력 시스템, 단말기 구동기
- 파일 시스템, 스와핑, 블록 입출력 시스템, 디스크와 테이프 구동기
- 프로세서 스케줄링, 페이지 대치, 요구 페이징, 가상 기억장치
* 하드웨어에 대한 커널 인터페이스
- 단말기 제어기, 단말기
- 장치 제어기, 디스크와 테이프
- 메모리 제어기, 실제 메모리
운영체제의 구분
1) 동시 사용자 수
- Single-user system : 한 명의 사용자가 모든 시스템 자원을 독점하며, 자원 관리 및 시스템 보호 방식이 간단하다.
- Multi-user system : 동시에 여러 사용자들이 시스템을 사용하며, 그에 따라 os의 기능 및 구조가 복잡하다. 서버 클러스터 장비 등에 사용된다. ex) Unix, Linux 등
2) 동시 실행 프로세스 수
- Single-tasking system : 단일 작업만 가능하다. 하나의 프로그램이 끝나야 다음 프로그램의 실행이 가능하다.
- Multi-tasking system : 동시에 여러 프로그램의 실행이 가능하며, 그에 따라 운영체제의 기능 및 구조가 복잡하다. ex) Unix / Linux, Windows 등
3) 작업 수행 방식
- Batch processing system (일괄처리시스템) : 사용자의 요청을 같은 유형의 작업끼리 일정 시간 동안 모아 한 번에 처리하는 시스템.
- Time-sharing system (시분할시스템) : CPU 사용시간을 나누어 자원을 사용하는 것으로, 그 시간이 매우 짧아서, 마치 여러 프로그램을 동시에 실행하는 것처럼 보인다.
- Distributed processing system (분산처리스템) : 네트워크를 기반으로 구축된 병렬 처리 시스템으로, 네트워크를 통해 웹서버, 단말기, db 서버 등을 연결하는 것이다. (Lousely-coupled system)
- Parallel Processing System (병렬처리시스템) : 단일 시스템 내에서 둘 이상의 프로세서를 사용하며, 메모리 등의 자원을 공유한다. 여러 프로세서가 존재하기 때문에 하나의 프로세서가 고장나도 다른 프로세서가 남아있기 때문에 정상적으로 동작된다.
- Personal Computing : 단독으로 자원을 독점하는.
- Real-time system (실시간시스템) : 작업처리에 제한 시간을 갖는 시스템이다. ~Hard real-time task / Soft real-time task
운영체제 구조
1) 단일구조 : 커널 내 모듈 간 직접 통신, 한 모듈의 문제가 전체 시스템에 영항을 준다.
2) 계층구조 : 모듈화, 하나의 모듈에 문제가 생기면 해당 모듈만 수정하면 된다.
3) 마이크로 커널 구조 : 메모리 관리, 프로세스 간 통신, 프로세스 관리 등의 필수 기능만 포함하여 커널의 크기를 최소화하고, 기타 기능은 사용자 영역에서 수행하도록 한 것이다.
운영체제의 기능
- 프로세스 관리
- 프로세서 관리
- 메모리 관리
- 파일 관리
- 입출력 ( I/O )관리
- 기타 장치 관리
- ....
출처
https://www.youtube.com/watch?v=EdTtGv9w2sA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN
'운영체제' 카테고리의 다른 글
[ 컴퓨터 구조와 운영 체제 ] - 혼자 공부하는 컴퓨터 구조 + 운영체제 (정보단위, 인코딩...) (0) | 2023.06.01 |
---|---|
[ 컴퓨터 구조와 운영 체제 ] - 혼자 공부하는 컴퓨터 구조 + 운영체제(책) (0) | 2023.05.31 |
[ 운영체제 ] - 02) 프로세스란? (0) | 2022.07.20 |