입출력 구조 (I/O Structure) 컴퓨터는 여러 형태의 입출력장치를 가진다. 예를들면 키보드, 마우스, 하드디스크, SSD 등이 있고 다양한 장치들을 관리하기 위해 운영체제는 많은 부분들을 입출력장치를 관리하는데 할애하고 시스템에 신뢰성과 성능을 높인다. 컴퓨터 시스템은 공통 버스에 의해 연결된 여러 개의 장치 제어기와 CPU들로 구성된다. 그리고 각 장치 제어기는 특정 타입의 장치만 담당한다. 장치 제어기는 약간의 로컬 버퍼 저장장치와 특수 목적용 레지스터 집합으로 이루어진다. 이는 장치 제어기가 자신이 제어하는 주변장치와 로컬 버퍼 저장장치 사이의 데이터 전송을 하는데 사용된다. 통상적으로 운영체제는 각 장치 제어기마다 디바이스 드라이버를 가지고 있다. 디바이스 드라이버란, 장치 제어기의 동작..
컴퓨터 시스템의 구성 컴퓨터 시스템 동작(Computer-System Operation) 컴퓨터는 여러 장치 제어기(Device Driver)들과 하나 이상의 CPU가 공유 메모리에 접근하고 서로 메모리 사이클을 얻기 위해 경쟁하며 병행 실행되기도 한다. 📌메모리 사이클이란? 컴퓨터가 메모리(ROM, RAM)에 데이터를 읽고 쓰는데 걸리는 시간을 의미한다. 메모리에 데이터를 읽고 쓰는 필요 단계를 말한다. 컴퓨터 시스템은 공유 메모리를 공통 버스로 다수의 장비들을 연결하고 관리한다. 공유 메모리에 대한 질서 있는 접근을 보장하기 위해 메모리 제어기가 메모리 접근을 동기화한다. 부팅 프로세스 컴퓨터가 구동하면 실행할 초기 프로그램을 가지고 있어야 한다. 이 초기 프로그램(bootstrap program)은..
운영체제 (Operating System) 운영체제란 컴퓨터 하드웨어를 관리하는 프로그램으로, 운영체제 혹은 응용 프로그램을 위한 자원 관리 및 사용자와 하드웨어 사이에 중재 역할을 한다. 운영체제는 위와 같은 작업들을 굉장히 다양한 방법으로 처리한다. 예를 들면, 대형 컴퓨터 운영체제는 주로 하드웨어 이용을 최적화하고 PC 운영체제는 게임, 비즈니스 응용 등을 지원하며, 휴대용 기기의 운영체제의 경우, UX를 좀더 관점에 둔 환경 조성을 위해 설계되었다. 즉, 운영체제는 목적에 따라 서로 다른 설계방식이 적용되어 있다. 운영체제는 이와 같은 작업들을 하기에 덩치가 매우 크고 복잡하다. 하여 주요 구성요소와 기본 구성에 대해 먼저 학습하자. 운영체제의 기능 하드웨어와 응용 프로그램을 연결하고 적절한 자원..
레지스터 플로우 이전 글에서 CPU의 내부 구조에 대해서 알아보았고, 이번에는 레지스터가 동작하는 방식을 알아보려한다. 레지스터에 데이터가 인출되는 사이클과 실행되는 사이클을 간략하게 하면 다음과 같다. 프로그램 실행 버튼 클릭 운영체제 혹은 실행 환경에서 해당 프로그램의 실행 정보를 메모리에 적재 프로그램 명령어들의 메모리 위치를 포함하고 초기화 및 실행에 필요한 데이터 포함 운영체제 혹은 실행 환경에서 프로그램의 시작 지점에 해당하는 주소를 PC에 생성 및 설정 PC에서 명령어를 인출하여 MBR로 경유 MBR에서 IR에 명령어 저장 실행 사이클에서 제어 유니트로 보내져 해독 MAR은 CPU 내부 주소 버스와 시스템 주소 버스 사이에서 버퍼 역할 MBR은 데이터에 대하여 내부 데이터 버스와 시스템 데이..
CPU의 기능 CPU는 '프로그램 수행'이라는 컴퓨터의 중추적 기능을 수행한다. 이를 위해 CPU는 메모리에 저장되어 있는 프로그램 코드인 명령어들을 실행하고 이러한 명령어들을 수행하기 위하여 여러 세부적인 동작들을 순서대로 나열하여 진행한다. 명칭 설명 명령어 인출(Instruction fetch) 메모리로부터 명령어 읽기 명령어 해독(Instruction decode) 수행할 동작을 결정하기 위해 명령어 해독 데이터 인출(Data fetch) 명령어 실행을 위해 데이터가 필요한 경우, 메모리 혹은 I/O 장치에서 데이터를 읽기 데이터 처리(Data process) 데이터에 각 연산을 수행 데이터 저장(Data store) 결과 저장 ※ 1, 2번 동작은 모든 명령어의 공통 수행 과정이다. 하지만 3~..
- Total
- Today
- Yesterday
- 명령어
- New
- 알고리즘
- 할당
- 백준
- 초기화
- 컴파일
- 스레드
- CPU
- 포인터
- 운영체제
- 레지스터
- static_cast
- c++
- 구조
- 인터럽트
- 수학
- 프로세스
- 멀티스레드
- 클래스
- dynamic_cast
- const
- malloc
- 크기
- 함수
- 메모리
- 게임수학
- 상속
- thread
- 입출력
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |