컴퓨터구조와 운영체제(7)
-
CPU의 성능에 영향을 끼치는 것들
CPU는 컴퓨터 부품중 제일 중요한 부품입니다. 따라서, CPU의 성능을 아는 것이 중요합니다! 이번 포스팅에서는 CPU의 성능에 대해서 알아보겠습니다. CPU의 성능에 영향을 미치는 것에는 크게 3가지가 있습니다. 1. 클럭 2. 코어 3. 스레드 클럭수를 빠르게! CPU의 속도를 빠르게 만들어보자! 컴퓨터에선 클럭 신호(Clock Signal)를 통해서 시간을 구분할 수 있는데, 컴퓨터 부품들은 이 클럭 신호에 맞춰 움직인다. 따라서, 클럭 신호를 빠르게 만들어 버리면 연산 속도가 빨라지게된다. 하지만, 연산 장치가 너무나도 빨라져버리면 컴퓨터에서 수행하는 작업들은 꼬이게 되고, 발열 문제도 발생할 수 있다. 즉, 적당히 빠른 클럭 신호면 CPU가 빨라진다. 클럭 속도 클럭 속도 : 헤르츠(Hz) 단..
2023.09.19 -
인터럽트가 발생한다면, CPU는 어떻게 처리할까??
아마 이 포스팅의 제목을 보고 "인터럽트가 발생한다"라는 문장에서 아래와 같은 점들이 궁금했을 것이다. 첫째로, 인터럽트란 무엇인가? 둘째로, 인터럽트는 어디에서 발생하는 것인가? 인터럽트가 뭐야? 인터럽트란 컴퓨터가 작업을 수행하던 도중 예기치 못한 특수한 상황이 발생하여 작업을 중단하고, 특수한 상황을 먼저 처리한 후 원래의 작업으로 되돌아가 나머지 작업을 계속 수행하게 되는 일련의 과정이다. 필자는 인터럽트의 개념에서 3가지가 궁금했다. 첫째로, 특수한 상황은 무엇일까?? 둘째로, 원래의 작업으로는 어떻게 되돌아가는 것일까?? 마지막으로, 인터럽트가 발생하고 처리하는 일련의 과정의 순서는 어떻게 되는 거야?? 특수한 상황 "특수한 상황은 무엇일까??" 이 질문은 필자가 처음에 궁금해했던 인터럽트는 ..
2023.09.14 -
명령어 사이클을 통해 CPU 동작 원리 및 뼈대 잡기
저번 포스팅에서는 컴퓨터 구조의 큰 그림을 그려봤다. 명령어 사이클을 통해, CPU의 동작 원리와 흐름을 알아보려고 한다. 명령어 사이클이란? CPU의 정해진 동작 흐름으로, 프로그램 속에서 명령어가 실행되는 주기는 반복된다. [인터럽트가 발생하면 이야기가 다르긴 하지만, 이에 대해서는 다음 포스팅에서 다뤄보려고 한다.] 명령어 사이클 명령어 사이클은 크게 2+1단계이다. 인출 사이클 - 실행 사이클 메모리로부터 필요한 데이터를 인출한다! 그리고, 바로 실행한다! 하지만, 메모리의 데이터가 유효주소라면 바로 실행이 불가능하다! 유효주소란? 연산에 사용될 데이터를 나타낸 메모리의 주소를 가지고 있는 메모리 주소 이 경우에는 아래와 같은 사이클을 탄다. 간접 사이클 다음으로, 간접 사이클에서 CPU의 부품들..
2023.09.10 -
컴퓨터 구조의 큰 그림을 그려보자
공부 이유 이번 학기의 목표는 단순히 소스코드를 작성하는 것이 아니라, 내가 작성한 코드를 통해서 들어온 데이터들이 DB에 얼마만큼의 용량을 차지하는 지 성능은 어떻게 하면 향상 시킬 수 있는 지 이에 대한 비용은 어느 지점이 가장 효율적인 지를 고민하는 것이다. 그러기 위해서는 직전학기에 제대로 이해하지 못 했던 컴퓨터 구조와 운영체제를 알아야할 필요성을 느꼈고, 이에 이번 학기에 컴퓨터 구조와 운영체제를 학습하여 목표를 달성하고자 한다. 대략적인 그림 그려보기 컴퓨터가 뭐야? 컴퓨터는 주어진 데이터에 입력된 명령어에 맞는 결과를 반환하는 녀석이다. 그렇다면, 컴퓨터를 구성하는 핵심 부품들은 어떤 거야? 메인 보드 : 컴퓨터의 핵심 부품들을 부착할 수 있게 만드는 부품 메모리 : 현재 실행되는 프로그램..
2023.09.03 -
쓰레드란??
쓰레드의 등장 배경은 다음과 같다. 프로세스는 하나의 작업을 가지고 여러 단위로 쪼개서 일할 때 참 난감하다.. 프로세스 생성의 오버헤드가 크다. Process Context Switching의 오버헤드가 크다. 프로세스간의 통신이 어렵다. 프로세스들은 완전히 독립적인 주소공간을 가지고 있따. 따라서, 조금 더 가벼운 쓰레드 등장!! 쓰레드 쓰레드는 프로세스 안에서 프로세스의 자원을 이용해서 작업을 수행하는 단위이다. 예를 들어서, 싱글 쓰레드는 하나의 자원에 쓰레드가 하나이고, 멀티 쓰레드는 하나의 자원에 쓰레드가 여러개이다. (참고로, 1개의 프로세스에는 무조건 1개 이상의 쓰레드가 있다.) 그렇다면, 쓰레드간의 통신은 어떻게 할까? 프로세스는 쓰레드의 컨테이너이므로, 프로세스가 쓰레드들에게 공유 환..
2023.04.07 -
운영체제란?
운영체제에 대해 깊이 공부하기 전에, 운영체제가 어떤 것인 지 대략적으로 알아보도록 하겠습니다. 운영체제란? 쉽게 말해서, 컴퓨터의 자원을 ‘잘’ 사용하기 위한 소프트웨어이다. ‘잘’ 사용하는 것이랑 ‘운영체제’랑 어떤 관련이 있는 것인가?? 바로 CPU가 1개이기때문이다!! (멀티코어 CPU라고 해도 CPU보다 프로세스가 훨씬 더 많기 때문에 맥락상 큰 차이는 없다.) CPU가 1개이기때문에 하나의 CPU가 여러 소프트웨어를 처리해야한다. 그렇다면, CPU는 ‘어떤 방식’으로 여러 소프트웨어를 처리할 것 인가? 여기서의 ‘어떤 방식’이 운영체제이다! 그러면 운영제제는 구체적으로 어떤 일을 하는 것일까? 운영체제의 기능 운영체제는 많은 기능이 있지만 크게보면 아래 3가지이다. 프로세스 관리 프로세스 적재..
2023.03.18