컴퓨터 구조와 운영체제 간단 정리
컴퓨터 구조와 운영체제에 대해 간단히 정리하는 글 - 노잼 참고
1. 컴퓨터 구조
컴퓨터의 핵심 부품
컴퓨터가 실행되기 위해 필요한 요소로 핵심 부품들은 시스템 자원에 속한다.
(대충 누가 그린지 알만한 컴퓨터 구조 이미지)
- 메모리
- 실행되는 프로그램의 명령어와 데이터를 저장한다.
- 프로그램이 실행되려면 메모리에 저장되어 있어야 한다.
- 메모리 저장 값의 위치는 주소로 알 수 있다.
- CPU
- ALU: 계산을 위해 존재
- 레지스터: CPU 내부의 작은 저장 장치
- 제어장치: 제어 신호를 내보내고, 명령어를 해석
메모리 읽고, 메모리에 저장되어있는 명령어를 가져와서 해석하는 기능을 한다. - 예시)
- 제어장치에서 메모리를 읽도록 제어 신호를 내보냄
- 명령어를 레지스터에 저장
- 제어장치에서 명령어를 해석함
- 필요한 데이터를 메모리에서 읽어오도록 제어장치에서 신호를 내보냄
- 가져온 데이터를 레지스터에 저장
- 데이터를 가지고 해석한 명령어를 실행(계산)
- 결과값을 레지스터에 저장
- 다음 행동을 위해 제어장치에서 메모리를 읽도록 제어 신호를 또 보냄
- 명령어를 통해서 레지스터에 임시로 저장되어있는 결과값을 메모리에 할당함
- 보조기억장치(ROM)
- 주기억장치(RAM)은 휘발성 저장장치라서 보조기억장치가 필요하다.
- 전원이 꺼져도 저장이 가능하다.
- 메모리에 비해서 용량, 금액적으로 유리하다.
- 입출력장치
- 컴퓨터 내부와 정보를 주고받을 수 있도록 해주는 모니터, 키보드, 마우스 등등
- 메인보드
- 핵심 부품(메모리, CPU, 보조기억장치, 입출력장치)을 연결해 줄 수 있도록 해주는 판
- 시스템 버스
- 메인보드에 연결되어있는 부품들 끼리 정보를 주고 받을 수 있는 통로 역할
- 주소 버스: 필요한 주소를 전달 (‘00번지’에 필요한 데이터가 있다면 해당 주소 값을 전달)
- 데이터 버스: 필요한 데이터를 전달 (‘200’ 이라는 데이터를 저장해야한다면 200이라는 값을 전달)
- 제어 버스: 필요한 명령어를 전달 (00번지에 200 이라는 데이터를 저장해야한다면 ‘저장’이라는 값을 전달)
- 메인보드에 연결되어있는 부품들 끼리 정보를 주고 받을 수 있는 통로 역할
2. 운영체제
자원을 관리하는 특별한 프로그램으로, 프로세스(실행중인 프로그램)를 관리하는 프로그램이다.
타 운영체제와 마찬가지로 메모리에 저장되지만 커널 영역이라는 메모리에 저장된다.
하드웨어와 개발자가 만든 프로그램 사이에 위치한 특별한 프로그램으로, 프로그램을 위한 프로그램이다. 따라서 프로그램을 만드는 개발자는 운영체제를 알아야 한다.
- 메모리 관리
- 자원(특히 메모리)를 관리하는 역할을 수행한다.
메모리의 물리적인 크기보다 큰 프로그램을 실행할 수 있도록 해준다.
- 자원(특히 메모리)를 관리하는 역할을 수행한다.
- CPU 스케줄링
- 다양한 프로그램 실행시킬때 어떤 프로그램에 CPU를 언제, 얼마나 할당 할지에 대해 관리한다.
- 자원 보호
- 동시 다발적으로 실행되는 프로세스들이 자원에 무지성 접근하는 것을 방지한다.
- 운영체제는 시스템 호출이라고 하는 방식을 통해 무지성 접근으로부터 자원을 보호한다.