운영체제란 ❓
HW(컴퓨터 시스템)을 효율적으로 관리해서 사용자나 응용 프로그램에게 서비스를 제공하는 것
하드웨어는 크게 3종류로 나뉜다.
-
프로세서(CPU, GPU)
-
메모리(DRAM, Disk)
-
주변장치(키보드,마우스,모니터, 네트워크 모뎀)
프로세서(Processor)
컴퓨터 모든 장치의 동작을 제어하며 연산 수행을 담당한다. 즉 컴퓨터의 두뇌로써 중앙처리장치
레지스터(Register)
프로세서 내부에 존재하는 메모리
레지스터 종류에 따라서
1. 사용자 가시 레지스터
데이터 레지스터(DR, Data Register) | 함수 연산에 필요한 데이터를 저장, 값 혹은 문자등을 저장하여 산술/논리 연산 수행 |
주소 레지스터(AR, Address Register) | 유효 주소를 계산하는데 필요한 주소의 일부분을 저장 |
2. 사용자 불가시 레지스터
프로그램 카운터(PC, Program Counter) | 다음에 실행할 명령어의 주소를 보관하는 레지스터 |
명령어 레지스터(IR, Instruction Register) | 현재 실행하는 명령어를 보관하는 레지스터 |
누산기(ACC, ACCumulator) | 데이터를 일시적으로 저장하는 레지스터(ex. 순간 계산 결과로 더해진 값) |
메모리 주소 레지스터(MAR, Memory Address Register) | 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근 |
메모리 버퍼 레지스터(MBR, Memory Buffer Register) | 프로세서가 메모리에서 읽거나 저장할 데이터 자체를 보관하는 버퍼 레지스터 |
운영체제와 프로세서는 무슨 관계가 있는걸까 ❓
1. 운영체제는 프로세서에게 처리할 작업을 할당하고 관리(즉, 프로세스(Process) 생성 및 관리)
2. 운영체제는 프로그램의 프로세서 사용 제어
메모리(Memory)
프로그램, 사용자데이터 등 데이터를 저장하는 기억 장치
용량(저->고): 레지스터, 캐시, 메인메모리, 보조기억장치
속도/가격(높->낮): 레지스터, 캐시, 메인메모리, 보조기억장치
레지스터, 캐시, 메인메모리는 프로세서가 직접 접근 가능하지만 보조 기억장치는 불가능해서 메인 메모리로 가져와서 실행 ❗
주기억장치(Main Memory)
DRAM을 주로 사용하고 디스트 입출력 병목현상 해소(느린 디스크와 빠른 CPU사이에 격차를 줄인다)
캐시(Cache)
프로세스 내부에 있는 메모리(L1,L2 캐시 등)로써 주기억장치(Main Memory)의 입출력 병목현상을 해소(CPU의 속도가 너무 빨라 메인메모리로는 안된다. 따라서 캐시를 둠으로써 격차를 더욱 해소하기 위해 노력)
캐시는 하드웨어에서 알아서 관리됨
캐시 히트(Cache hit) - 필요한 데이터 블록이 존재
캐시 미스(Cache miss) - 필요한 데이터 블록이 없는 경우
캐시의 적중률을 높히려면 지역성이 매우 중요하다.
- 공간적 지역성 - 참조한 주소와 인접한 주소를 참조하는 특성 (메인메모리에서 블록 단위로 캐시로 이동하기 때문에)
- 시간적 지역성 - 한번 참조한 주소를 곧 다시 참조하는 특성 (ex. For문 같은 순환문)
-> 지역성을 고려해서 좋은 알고리즘을 짜면 캐시의 적중률을 높힐 수 있다.
보조기억장치
프로세서가 직접 접근할 수 없기에 주 기억장치를 거쳐 접근한다. 주변장치에 해당 (ex. CD, HDD)
운영체제와 메모리는 무슨 관계가 있는걸까 ❓
1. 운영체제는 메모리 할당 및 관리
2. 운영체제는 가상 메모리 생성 및 관리
🚌 시스템 버스(System Bus)
HW들이 데이터 및 신호를 주고 받는 물리적인 통로
데이터 버스 | 프로세서, 메인메모리, 주변장치 사이에서 데이터 전송, 데이터 버스의 배선 수는 프로세서가 한번에 전송할 수 있는 비트 수 결정(=워드) |
주소 버스 | 프로세서가 시스템의 구성요소를 식별하는 주소 정보를 전송, 주소 버스의 배선 수는 메인메모리의 용량을 결정 |
제어 버스 | 프로세서가 시스템의 구성요소를 제어하는데 사용, 제어 신호로 연산종류 결정, 메인메모리의 읽고 쓰는 동작 결정 |
주변 장치
프로세서와 메모리를 제외한 HW
입력장치, 출력장치, 저장장치
운영체제와 주변장치는 무슨 관계가 있는걸까 ❓
1. 운영체제는 장치 드라이버 관리, 주변장치를 사용하기 위한 인터페이스를 제공한다는 말이다.
2. 운영체제는 인터럽트 처리(입력이 들어왔다는 사실을 알려주는게 인터럽트라고 생각하면 됨)
3. 운영체제는 파일 생성 및 삭제, 디스트 공간 관리
참고자료
www.youtube.com/watch?v=EdTtGv9w2sA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN
'OS' 카테고리의 다른 글
프로세스 스케줄링이 뭘까❓ (0) | 2021.01.04 |
---|---|
스레드에 대해 알아보자 (0) | 2021.01.03 |
인터럽트를 알아보자 (0) | 2020.12.31 |
운영체제가 프로세스를 어떻게 관리할까❓ (0) | 2020.12.31 |
운영체제의 구조와 기능을 간단히 살펴보자 (0) | 2020.12.31 |