컴퓨터 구조와 운영체제에 대해 간단히 정리하는 글 - 노잼 참고

1. 컴퓨터 구조

컴퓨터의 핵심 부품

컴퓨터가 실행되기 위해 필요한 요소로 핵심 부품들은 시스템 자원에 속한다. GPT가 그린 컴퓨터 구조

(대충 누가 그린지 알만한 컴퓨터 구조 이미지)

  1. 메모리
    • 실행되는 프로그램의 명령어와 데이터를 저장한다.
    • 프로그램이 실행되려면 메모리에 저장되어 있어야 한다.
    • 메모리 저장 값의 위치는 주소로 알 수 있다.
  2. CPU
    • ALU: 계산을 위해 존재
    • 레지스터: CPU 내부의 작은 저장 장치
    • 제어장치: 제어 신호를 내보내고, 명령어를 해석
      메모리 읽고, 메모리에 저장되어있는 명령어를 가져와서 해석하는 기능을 한다.
    • 예시)
      1. 제어장치에서 메모리를 읽도록 제어 신호를 내보냄
      2. 명령어를 레지스터에 저장
      3. 제어장치에서 명령어를 해석함
      4. 필요한 데이터를 메모리에서 읽어오도록 제어장치에서 신호를 내보냄
      5. 가져온 데이터를 레지스터에 저장
      6. 데이터를 가지고 해석한 명령어를 실행(계산)
      7. 결과값을 레지스터에 저장
      8. 다음 행동을 위해 제어장치에서 메모리를 읽도록 제어 신호를 또 보냄
      9. 명령어를 통해서 레지스터에 임시로 저장되어있는 결과값을 메모리에 할당함
  3. 보조기억장치(ROM)
    • 주기억장치(RAM)은 휘발성 저장장치라서 보조기억장치가 필요하다.
    • 전원이 꺼져도 저장이 가능하다.
    • 메모리에 비해서 용량, 금액적으로 유리하다.
  4. 입출력장치
    • 컴퓨터 내부와 정보를 주고받을 수 있도록 해주는 모니터, 키보드, 마우스 등등
  5. 메인보드
    • 핵심 부품(메모리, CPU, 보조기억장치, 입출력장치)을 연결해 줄 수 있도록 해주는 판
  6. 시스템 버스
    • 메인보드에 연결되어있는 부품들 끼리 정보를 주고 받을 수 있는 통로 역할
      1. 주소 버스: 필요한 주소를 전달 (‘00번지’에 필요한 데이터가 있다면 해당 주소 값을 전달)
      2. 데이터 버스: 필요한 데이터를 전달 (‘200’ 이라는 데이터를 저장해야한다면 200이라는 값을 전달)
      3. 제어 버스: 필요한 명령어를 전달 (00번지에 200 이라는 데이터를 저장해야한다면 ‘저장’이라는 값을 전달)

2. 운영체제

자원을 관리하는 특별한 프로그램으로, 프로세스(실행중인 프로그램)를 관리하는 프로그램이다.
타 운영체제와 마찬가지로 메모리에 저장되지만 커널 영역이라는 메모리에 저장된다.
하드웨어와 개발자가 만든 프로그램 사이에 위치한 특별한 프로그램으로, 프로그램을 위한 프로그램이다. 따라서 프로그램을 만드는 개발자는 운영체제를 알아야 한다.
GPT가 그린 운영체제

  • 메모리 관리
    • 자원(특히 메모리)를 관리하는 역할을 수행한다.
      메모리의 물리적인 크기보다 큰 프로그램을 실행할 수 있도록 해준다.
  • CPU 스케줄링
    • 다양한 프로그램 실행시킬때 어떤 프로그램에 CPU를 언제, 얼마나 할당 할지에 대해 관리한다.
  • 자원 보호
    • 동시 다발적으로 실행되는 프로세스들이 자원에 무지성 접근하는 것을 방지한다.
    • 운영체제는 시스템 호출이라고 하는 방식을 통해 무지성 접근으로부터 자원을 보호한다.

참고: 컴퓨터 구조와 운영체제 50분만에 핵심 개념 정복하기 (ft. 강민철 저자님)