운영체제란?
- 사용자에게 서비스를 제공하기 위해서 하드웨어를 관리하는 소프트웨어
운영체제를 왜 배울까?
- 우리가 실제로 OS를 손 볼 일은 거의 없다. 그러나 OS와 비슷한 것을 매번 만든다. 그것은 우리가 개발하는 프로그램이다. 우리가 개발하는 프로그램은 일종의 OS이다. 따라서, OS의 효율적인 작동 방법을 배운다면, 우리가 개발하는 프로그램에 적용하여 효율적인 프로그램을 개발할 수 있다.
하드웨어 종류
- 프로세서: CPU, GPU
- 메모리: 메인 메모리, 보조 메모리
- 주변 장치: 키보드, 마우스, 모니터 등
1. 운영체제와 프로세서
1) 하는 일
- 프로세서에게 처리할 작업 할당 및 관리: 프로세서 생성 및 관리
- 프로그램의 프로세서 사용 제어: 프로그램의 프로세서 사용 시간 관리
2) 프로세서
- 연산 수행
- 컴퓨터의 모든 장치 동작 제어
3) 레지스터
- 프로세서 내부에 있는 메모리
- 프로세서가 사용할 데이터 저장
- 컴퓨터에서 가장 빠른 메모리
2. 운영체제와 메모리
1) 하는 일
- 메모리 할당 및 관리: 프로그램의 요청에 따른 메모리 할당 및 회수
- 가상 메모리 관리: 가상 메모리 생성 및 관리
2) 메모리
- 데이터를 저장하는 장치
3) 메모리 종류
- 프로세스가 직접 접근 가능한 메모리: 레지스터, 캐시, 메인 메모리
- 프로세스가 직접 접근 못하는 메모리: 보조 메모리
4) 메인 메모리
- 프로세서가 수행할 프로그램과 데이터 저장
- 질문: 디스크의 프로그램과 데이터를 메인 메모리로 옮겨서 사용하는 이유는? - 답변: 디스크와 CPU의 속도에서 차이가 나기 때문에 디스크 입출력 병목 현상이 발생하기 때문입니다. 이를 해결하고자 중간 속도의 메인 메모리를 사용합니다. CPU가 일하는 중에 필요한 프로그램과 데이터를 디스크에서 메인 메모리로 가져옵니다. |
5) 캐시
- 프로세서 내부에 있는 메모리
- 메인 메모리의 입출력 병목현상 해소
- 동작
* 캐시 히트: 프로세서에서 요청한 데이터가 캐시에 있으면 가져온다.
+ 메인 메모리까지 가지 않아도 되니 더 빠르게 처리 가능하다.
* 캐시 미스: 프로세서에서 요청한 데이터가 캐시에 없으면 메인 메모리에서 가져오고 프로세서에게 준다.
+ 프로세서 -> 캐시 -> 메인 메모리 -> 캐시 -> 프로세서 과정을 거치기 때문에 오래 걸린다.
- 지역성
* 지역성은 64kb ~ 4mb 정도의 작은 캐시가 어떻게 많은 정보를 빠르게 가져올 수 있는가에 대한 이유이다.
* 공간적 지역성(spatial locality): 참조한 주소의 인접한 주소를 함께 가져온다.
+ cache line: A의 주소를 가져올 때 주변 주소들도 함께 가져온 블록 형태
* 시간적 지역성(temporal locality): 한 번 참조한 주소를 곧 다시 참조한다.
+ 1회 사용한 주소는 다음에 사용할 가능성이 높습니다. 예) for문
* 위 두가지 특성 때문에 캐시 히트율이 높고, 따라서 CPU가 캐시의 작은 용량만으로도 많은 정보 사용 가능
* 캐시의 특징을 사용한 효율적인 알고리즘 설계(프로그래밍 측면)
cache는 메인 메모리에서 블록 단위로 가져온다.
1번의 경우 i=0 일 때, j=0과 j=1, ... 을 진행하면 이미 가져온 캐시에서 그대로 사용하면 된다. 캐시 히트
2번의 경우 i=0 일 때, j=0과 j=1, ... 을 진행하면 캐시에 없기 때문에 메인 메모리에서 새로 가져와야 한다. 캐시 미스
따라서 1번 처럼 작성하는 것이 몇 배는 빠르다.
6) 보조 메모리
- 종류: 하드 디스크, USB
- 프로세서가 직접 접근 불가능하여 메인 메모리를 통해서 접근
7) 시스템 버스
- 하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로
- 데이터 버스: 데이터를 전송
- 주소 버스: 주소를 전송
- 제어 버스: 제어 신호를 전송
3. 주변장치와 운영체제
1) 하는 일
- 장치 드라이버 관리: 주변 장치 사용을 위한 인터페이스 제공하여 운영체제가 장치를 관리하게 한다.
- Interrupt 처리: 주변 장치의 요청 처리
- 파일 및 디스크 관리: 파일 생성 및 삭제, 디스크 공간 관리
2) 주변 장치
- 프로세서와 메모리를 제외한 하드웨어
- 종류: 입력장치, 출력장치, 저장장치(보조기억장치)
본 내용은 한국기술교육대학교 김덕수 교수님의 유튜브 강의를 듣고 정리한 내용입니다.
'Software Courses > Operating System' 카테고리의 다른 글
Process Synchronization and Mutual Exclusion (0) | 2020.12.02 |
---|---|
Process Scheduling (0) | 2020.12.01 |
Thread 관리 (0) | 2020.11.30 |
Process 관리 (0) | 2020.11.30 |
OS Overview 2 (0) | 2020.11.29 |