운영체제 (Operating System) 정의
OS 는 하드웨어를 효율적으로 관리해서 응용프로그램 또는 사용자에게 서비스를 제공하는 소프트웨어를 OS, 운영체제(Operation System)라고 한다.
컴퓨터 하드웨어
컴퓨터 하드웨어를 크게 3가지로 나눠볼 수 있다.
- 프로세서(Processor) : 계산하는 장치
- 메모리(Memory) : 저장하는 장치
- 주변장치 : 그 외에 장치
프로세서
- CPU
- GPU (그래픽카드)
- 응용 전용 처리 장치 : 특별한 계산을 위해 탄생한 장치들
메모리
주변 장치
- 키보드/마우스 : 입력 장치
- 모니터, 프린터 : 출력 장치
- 네트워크 모뎀 : 네트워크
각 주요 하드웨어를 자세한 설명
프로세서 (Processor) :
컴퓨터의 두뇌 (중앙처리장치)
- 연산 수행
- 컴퓨터의 모든 장치 동작 제어
레지스터(Register) : 프로세스 내부에 있는 메모리
- 프로세서가 사용할 데이터 저장
- 컴퓨터에서 가장 빠른 메모리
레지스터의 분류
- 용도에 따른 분류 : 전용 레지스터, 번용 레지스터
- 사용자가 정보 변경 가능 여부에 따른 분류 : 사용자 가시 레지스터, 사용자 불가시 레지스터
- 저장하는 정보의 종류에 따른 분류 : 데이터 레지스터, 주소 레지스터, 상태 레지스터
사용자 가시 레지스터
데이터 레지스터 DR (Data Register) : 함수 연산에 필요한 데이터를 저장
주소 레지스터 AR(Address Register) : 주소나 유효 주소를 계산하는데 필요한 주소의 일 부분을 저장
사용자 불가시 레지스터
- 프로그램 카운터 PC (Program Counter) : 다음에 실행할 명령어의 주소를 보관하는 레지스터
- 명령어 레지스터 IR (Instruction Register) : 현재 실행하는 명령어를 보관하는 레지스터
- 누산기 ACC (ACCumlator) : 데이터를 일시적으로 저장하는 레지스터
- 메모리 주소 레지스터 MAR (Memory Address Register) : 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터
- 메모리 버퍼 레지스터 MBR (Memmory Address Register) : 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터. 메모리 레지스터라고도 한다.
운영체제와 프로세서의 관계
- 프로세서에게 처리할 작업 할당 및 관리
- 프로그램의 프로세서 사용 제어
- 프로그램의 프로세서 사용 시간 관리
- 복수 프로그램 간 사용 시간 조율
메모리 (Memory) :
데이터를 저장하는 장치 ( 기억 장치 )
주기억장치 (Main Memory)
- 프로세서가 수행할 프로그램과 데이터 저장
- DRAM을 주로 사용 ( 용량이 크고, 가격이 저렴 )
- 디스크 입출력 병목현상(I/O bottleneck) 해소
프로세서는 디스크에서 메인 메모리로 온 데이터를 가져다 사용한다.
하지만 왜 디스크에서 바로 데이터를 가져다 쓰지 않을까?
왜냐하면 디스크 장치는 용량은 크지만, 속도는 엄청 느리기 때문이다.
그래서 디스크와 프로세서를 연결해주는 장치를 메인 메모리라고 생각하면 된다.
또 왜 메인 메모리를 디스크로 사용하지 않지?
왜냐하면 속도는 빠르지만 용량이 작고 가격도 비싸기 때문이다.
캐시 (Cache)
- 프로세서 내부에 있는 메모리 (L1, L2 캐시 등)
- 메인 메모리의 입출력 병목현상 해소
디스크와 주 기억장치와 마찬가지로 주 메모리와 프로세서 간의 속도 차이가 크다.
이를 개선하기 위해 캐시는 프로세서와 메모리의 사이에서 중간 역할을 한다.
보조기억 장치 (Auxiliary memory / secondary memory / storage) :
- 프로그램과 데이터를 저장
- 프로세서가 직접 접근할 수 없음 ( 주변 장치로 분류 )
- 주 기억장치를 거쳐서 접근
- 프로그램 또는 데이터가 주 기억장치보다 큰 경우는 가상 메모리(Virtual memory)라고한다. 가상메모리는 하드디스크의 일부를 주 기억장치처럼 사용하는 것이다.
- 용량이 크고, 가격이 저렴
- 하드디스크, USB, CD, SD카드 등
메모리와 운영체제 관계
- 메모리 할당 및 관리
- 프로그램의 요청에 따른 메모리 할당 및 회수
- 할당된 메모리 관리
- 가상 메모리 관리
- 가상 메모리 생성 및 관리
- 논리 주소 -> 물리 주소 변환
시스템 버스 (System Bus) :
하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로
- 데이터 버스 : 프로세서와 메인 메모리, 주변장치 사이에서 데이터를 전송
- 주소 버스 : 프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송
- 제어 버스 : 프로세서가 시스템의 구성 요소를 제어하는 데 사용
동작 원리
주변 장치 :
프로세서와 메모리를 제외한 하드웨어들
- 입력장치 : 마우스, 키보드 등
- 출력장치 : 모니터, 프린트, 오디오 등
- 저장장치 : 디스크, usb, cd 등
주변장치와 운영체제 관계
- 장치 드라이버 관리 : 주변 장치 사용을 위한 인터페이스 제공
- 인터럽트(Interrupt) 처리 : 주변 장치의 요청 처리
- 파일 및 디스크 관리 : 파일 생성 및 삭제, 디스크 공간 관리