컴퓨터란?
하드웨어 자원과 소프트웨어 자원을 기반으로 작동하는 기계
- 하드웨어 자원
컴퓨터의 물리적 구성 요소를 의미(e.g. CPU, 메모리, 하드 디스크, 그래픽 카드, 입출력 장치) - 소프트웨어 자원
컴퓨터의 논리적 구성 요소를 의미(e.g. 운영체제, 응용 프로그램, 데이터베이스)
운영체제 (OS) 란?
사용자가 컴퓨터를 사용할 수 있도록 도와주는 소프트웨어이며 아래와 같은 역할을 한다.
사용자가 원하는 운영체제(e,g, Window, Ubuntu)를 부팅시 사용할 디스크에 설치를 통해 사용한다.
- 인터페이스 제공
사용자와 컴퓨터 간의 상호 작용을 위한 인터페이스(UI, UX)를 지원한다. - 자원 관리
하드웨어, 소프트웨어 자원을 관리한다. - 프로그램 실행
각종 프로그램이 실행될 수 있는 환경을 제공한다. - 시스템 보안 제공
컴퓨터 시스템을 보호한다.
운영체제의 구조
- 드라이버
하드웨어를 제어하기 위한 소프트웨어이며 운영체제의 명령을 하드웨어에 전달하는 역할을 함 - 커널
자원 관리, 프로그램 실행, 시스템 보안 제공 기능을 하며 프로그램 동작이 아래와 같이 이루어진다.
1) 시스템 호출 -> 2) 커널 함수 동작 -> 3) 드라이버를 통한 명령 전달 -> 4) 하드웨어 실행 -> 5) 프로그램 실행
2.1 유저 모드
유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드
2.2 커널 모드
모든 컴퓨터 자원에 접근할 수 있는 모드 - 시스템 콜
응용 프로그램이 동작되기 위해 커널 동작이 필요할 때 응용 프로그램은 시스템 호출을 통해 커널에 필요한 커널 함수 실행요청을 보낸다. - 인터페이스
키보드, 마우스, 화면 등 다양한 입력 장치를 통해 사용자의 입력을 받아들이고, 화면, 프린터 등 다양한 출력 장치를 통해 사용자에게 정보를 제공한다.
CPU
컴퓨터 하드웨어 자원 중 하나이며 사람의 뇌라고 이해하는 것이 가장 쉽다.
산술논리연산장치, 제어장치, 레지스터로 구성되어 있으며 각각의 장치를 통해 필요한 명령들을 처리한다.
- 제어장치(Control Unit)
커널로 부터 온 명령어들을 읽고 해석하여 데이터 처리를 위한 순서를 결정하는 CPU의 동작을 제어하는 역할을 한다.
(※ 커널리스 프로그램의 경우 프로그램 -> CPU로 바로 명령어를 보내기도 한다.) - 레지스터
CPU가 현재 작업에 필요한 데이터를 저장하며 연산 속도가 메모리 중 가장 빠르다. - CPU 캐시 메모리
CPU가 자주 사용하는 데이터를 저장하여 연산 속도를 높이는데 사용한다. - 산술논리연산장치
논리 연산을 계산하는 디지털 회로로써 산술 연산, 논리 연산, 비트 연산을 수행한다. - 메모리 버스
CPU에서 메모리에 접근할 때 사용되는 장치 - 인터럽트 컨트롤러
CPU가 외부 장치로부터 인터럽트를 받을 때 이를 처리하는 장치 - 타이머
CPU가 일정 시간마다 특정 작업을 수행하도록 하는 장치
메모리
CPU에서 저장이 필요한 데이터를 컴퓨터에 저장할 수 있도록 하는 일종의 저장 장치이며 아래와 같이 구분된다.
- 레지스터
CPU 내부에 있는 임시 저장 장치 - 캐시 메모리
CPU와 메인 메모리 사이에 있는 고속 메모리, CPU가 자주 사용하는 데이터를 임시로 저장 - 메인 메모리(RAM)
프로그램을 실행할 때 사용하며 CPU에서 직접 접근하기 때문에 보조 저장 장치에 비해서 접근 속도가 빠르다.
저장된 데이터가 시간과 전원의 끊김에 따라 소멸되는 특징이 있다. - 보조 저장 장치(HDD, SSD)
플러터와 헤드가 회전하면서 데이터를 읽거나 쓰기 때문에 속도가 느리다.
저장된 데이터가 시간과 전원의 끊김에 따라 소멸되지 않는 특징이 있다.
'cs기초' 카테고리의 다른 글
컴파일러 & 기타 (0) | 2023.08.10 |
---|---|
프로세스 & 스레드 & 메모리 (0) | 2023.08.10 |
네트워크 (0) | 2023.08.10 |