티스토리 뷰

운영체제

  • 컴퓨터 하드웨어와 소프트웨어를 관리하고 사용자와 컴퓨터간의 인터페이스를 제공하는 시스템 소프트웨어
  • 컴퓨터 시스템: Windows, Linux, Unix
  • 스마트폰 시스템: Android, Ios

 

컴퓨터 시스템

  • 하드웨어와 소트프웨어로 구성
  • 하드웨어
    • 데이터를 처리하는 물리적인 기계 장치
    • 컴퓨터 시스템을 구성하는 물리적 장치
    • 프로세서(중앙처리장치), 버스, 메모리, 입출력장치 등 다양한 주변장치로 구성
  • 소프트웨어
    • 특별한 작업 지시를 위해 명령어로 작성한 프로그램
    • 사용자와 상호 작용하는 프로그램
    • 운영체제, 애플리케이션, 드라이버 등으로 구성

 

프로세서(Processor)

  • 중앙처리장치(CPU: Central Processing Unit)
  • 레지스터, 산술 논리 연산장치, 제어장치 등으로 구성
  • 마이크프로세서: 레지스터, 산술 논리 연산장치, 제어장치를 칩 하나로 구성

마이크프로세서 칩 <-> 프로세서(중아처리장치) 구성요소

 

버스(Bus)

  • 프로세서를 포함한 각 장치 간 또는 서브시스템을 서로 연결하여 정보(데이터)를 주고받을 수 있게 해주는 통로
  • 컴퓨터 내부 각 요소의 다양한 신호는 버스를 통해 전달됨
  • 데이터 입출력 신호, 프로세서 상태 신호, 인터럽트 요구와 허가 신호, Clock 신호 등은 버스를 통해 전달됨

 

버스 위치에 따른 분류

  • 내부 버스
    • 프로세서 내부에서의 데이터 흐름을 관리하는 버스
    • 레지스터, 연산장치, 메모리 등 CPU 내부의 여러 구성 요소들이 데이터를 주고받을 때 사용
    • 예를 들어, 레지스터에 저장된 데이터를 연산장치로 보내거나, 연산장치에서 연산한 결과를 다시 레지스터에 저장하는 등의 작업을 할 때 내부 버스가 사용
    • 시스템 버스 인터페이스 회로를 통해 외부 버스와 연결. 즉, 내부 버스는 외부와의 연결을 위해 중간 역할을 하는 부분이 존재
  • 외부 버스
    • 프로세서 외부 장치들 간의 데이터 흐름을 관리하는 버스
    • 프로세서와 메모리, 프로세서와 입출력 장치, 그리고 입출력 장치 간의 연결에 사용
    • 예를 들어, 메모리와 CPU 간의 데이터 전송, CPU와 하드 드라이브 간의 데이터 전송, 입출력 장치(프린터, 모니터 등)와 CPU 간의 데이터 교환을 처리하는데 외부 버스가 사용
    • 외부 버스는 시스템 버스라고 불리며, CPU와 외부 장치들(메모리, 입출력 장치 등)을 연결하는 중요한 역할
    • 각 시스템 버스는 버스 제어기라 불리는 제어 회로를 가짐

 

버스 기능에 따른 분류

  • 데이터 버스
    • 컴퓨터 시스템에서 데이터, 명령어 등의 정보를 교환하는 전송로
    • 프로세서에서 메모리나 입출력 장치로 데이터 출력 또는 반대로 데이터를 입력 받을 때 사용하는 양방향 버스
    • 데이터 버스 신호선의 수가 해당 프로세서의 성능을 결정
  • 주소 버스
    • 하나의 시스템 장치에서 다른 장치로 주소 정보를 전송하기 위해 사용
    • 신호선의 수에 따라 최대 사용 가능한 메모리 용량이나 입출력장치 수를 결정
  • 제어 버스
    • 프로세서가 저장장치와 입출력장치에 데이터를 전송할 때, 현재 수행중인 작업 종류나 상태를 다른 장치에 알릴 때 이용하는 단방향 버스

 

레지스터(Register)

  • 프로세서에 위치한 고속 메모리로 프로세서가 바로 사용할 수 있는 데이터 저장 장치
  • 용도에 따라 전용 레지스터, 범용 레지스터, 저장되는 정보의 종류에 따라 데이터 레지스터, 주소 레지스터, 상태 레지스터로 나뉨
  • 사용자가 저장한 정보의 변경 여부에 따라 2가지로 분류: 사용자 가시 레지스터, 사용자 불가시 레지스터
  • 사용자 가시 레지스터(User-Visible Register)
    • 운영체제(시스템)와 사용자 프로그램을 통해 접근 가능한 데이터와 주소, 일부 조건 코드를 보관
  • 사용자 불가시 레지스터(User-Invisible Register)
    • 프로세스의 제어와 상태 관리
    • 프로그램 카운터, 명령어 레지스터, 프로그램 상태 레지스터, 메모리 주소 레지스터, 메모리 버퍼 레지스터 등이 속함

 

메모리(Memory)

  • 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품
  • 메모리 계층 구조: 계층 구조는 1950 ~ 1960년대 메인 메모리의 높은 가격으로인해 제안된 방법으로, 다양한 레벨의 메모리를 연결하여 비용, 속도, 용량, 접근 시간 등을 상호 보완한 것

메모리 계층 구조

  • 보조 기억 장치
    • 자기 디스크: 대용랑
    • 광학 디스크: 이동이 편리
    • 자기 테이프: 파일을 저장하기 위해 속도가 느림
  • 캐쉬: 메인 메모리와 프로세서의 속도 차를 보완 (CPU 내부에 존재)
  • 레지스터: 프로세서가 사용할 자료를 보관하며 가장 빠름 (CPU 내부에 존재)

 

지역성(Locality)

  • 프로그램이 특정 메모리 영역을 집중적으로 사용하는 특성을 의미
  • 프로그램은 명령어를 순차적으로 실행하는 경향이 있어 특정 영역 메모리에 인접해 있음
  • 시간 지역성: 최근에 사용한 데이터나 명령어를 곧 다시 사용할 확률이 높다
  • 공간 지역성: 현재 사용한 데이터 근처의 데이터를 곧 사용할 확률이 높다

 

지역성을 활용한 메모리 계층 구조

  • 시간 지역성 덕분에 최근에 사용한 데이터를 빠른 메모리에 저장하면, 그 데이터가 다시 필요할 때 빨리 찾을 수 있음
  • 공간 지역성 덕분에 연속된 데이터를 한 번에 불러오는 방법을 사용할 수 있음
  • 이렇게 자주 사용되는 데이터는 빠른 메모리에서, 덜 자주 사용되는 데이터는 느린 메모리에 저장하는 계층 구조를 사용하면, 성능을 극대화할 수 있음

 

메인 메모리

  • 셀(Cell): 메모리의 기본 저장 단위, 각 셀은 비트(0 또는 1)를 저장할 수 있다
  • 바이트(Byte): 메모리에서 데이터를 저장하는 최소 단위로 1바이트는 8비트로 구성됨.
  • 주소(Address): 각 메모리 셀에는 고유한 주소가 있고, CPU는 이 주소를 통해 메모리에서 데이터를 접근함
  • 워드(Word): 시스템마다 다르지만, CPU가 한 번에 처리할 수 있는 데이터의 크기를 워드라고 함
  • 휘발성: 전원이 꺼지면 데이터가 사라짐

메인 메모리의 역할

  • 프로세서: 메인 메모리로부터 처리할 데이터를 가져오거나 처리한 결과를 메인 메모리에 저장
  • 입출력장치: 메인 메모리에서 데이터를 받거나 저장

 

  • 물리적 주소 공간
    • 컴퓨터에 주어진 주소 공간
    • 프로그래머는 직접 사용하지 않고 수식, 변수를 이용
  • 논리적 주소 공간
    • 컴파일러에 의해 기계어로 변환된 변수와 명령어에 할당되는 주소
    • 별도의 주소 공간에 나타남
  • 컴파일
    • 원시 프로그램을 기계 명령어로 변환하는 처리 과정
    • 컴파일러가 논리적 주소를 물리적 주소로 변환

 

  • 메모리 속도는 어떤 동작의 시작과 종료 사이의 경과 시간으로 메모리 접근 시간메모리 사이클 시간으로 표현
  • 메모리 접근 시간: 명령 발생 후 목표 번지를 검색하여 데이트 쓰기(읽기)를 시작할 때까지의 시간
  • 메모리 사이클 시간: 두 번의 연속적인 메모리 동작 사이에 필요한 최소 지연 시간
  • 일반적으로 사이클 시간이 접근 시간보다 약간 크며 메모리의 세부 구현 방법에따라 달라짐

  • 프로세서와 메모리 사이의 접근 속도 차가 커짐에 따라 메인 메모리의 부담을 줄이기 위해 프로세서 칩 안이나 외부에 별도의 캐시를 구현

 

가상 메모리(Virtual Momory)

  • 메인 메모리의 유효 크기를 늘리는 기법
  • 메인 메모리의 공간 부족으로 현재 실행 중인 프로그램이나 데이터를 저장 할 수 없을 때 가상 메모리를 사용
  • 프로그램과 데이터를 보조기억장치에 일부 저장한 후 필요 시 다시 메인 메모리로 옮겨 실행
  • 실행 중인 프로세스가 참조하는 주소와 메인 메모리에서 사용하는 주소를 분리해야 함
  • 운영체제는 페이지 테이블을 사용하여 가상 주소를 물리 주소에 매핑하고, 이를 통해 프로그램은 물리 메모리와 상호 작용하게 됨

 

 

케시(Cache)

  • 프로세서와 메인 메모리 사이에서 데이터나 정보를 저장하는 고속 버퍼
  • 데이터가 이동할 수 있는 통로를 확대하여 프로세서와 메인 메모리의 속도 차를 줄임

  • 메인 메모리의 주소는 태그 영역과 주소 영역 등을 나타내는 연속된 값으로 구성
  • 태그 영역: 메인 메모리의 주소 중에서 어던 데이터 블록이 캐시에 저장되었는지 식별하는 정보
  • 주소 영역: 메모리 주소에서 어떤 캐시 블록을 찾을 수 있는지를 결정하는 정보
  • 캐시는 메인 메모리 주소 영역을 나눈 후 각 블록에 번호를 부여 해 태그로 번호를 저장
  • 프로세서가 메인 메모리 접근이 필요할 때 먼저 캐시를 조사하여 원하는 블록을 찾음

 

주변장치

  • 컴퓨터의 기능을 향상시키기 위한 추가 장비
  • 입력 장치(키보드, 마우스), 출력 장치(모니터), 보조기억장치, 스캐너, 모뎀 등
    • 보조기억장치: 플로피 디스크, 하드 디스크, CD/DVD(광학 디스크), 테이프 드라이브 등