
컴퓨터 구조를 왜 알아야 하는가?컴퓨터 구조는 실력있는 개발자가 되려면 반드시 알아야 할 기본 지식이다.컴퓨터 구조를 이해하고 있다면 문제 상황을 빠르게 진단할 수 있고, 문제해결의 실마리를 다양하게 찾을 수 있다.컴퓨터 구조를 이해하면 문법만으로는 알기 어려운 성능/

0과 1로표현되는 정보에는 크게 두 종류가 있는데, 바로 데이터와 명령어이다.컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 가리켜 데이터 라고한다.데이터를 움직이고 컴퓨터를 작동시키는 정보를 하는 것을 명령어라고한다.데이터와 명령어 중, 컴퓨터를

컴퓨터가 표현하는 정보단위를 학습하고, 0과 1만으로 숫자를 표현하는 방법을 배워보자!: 컴퓨터는 0 또는 1밖에 이해하지 못한다. 0과 1을 나타내는 가장 작은 정보 단위를 비트라고 한다.또한, 중요한 정보단위 중 워드 라는 단위도 있다.워드(word)란 CPU가 한

아스키코드, 유니코드 등은 컴퓨터가 이해할 수 있는 0과 1로 다양한 문자를 표현하는 방법이다. 이에 대해 알아보자.컴퓨터가 인식하고 표현할 수 있는 문자 모음을 문자집합 이라고 한다.문자를 그대로 컴퓨터가 읽을 수 없기 때문에 문자를 0과 1로 변환하는 과정을 문자

모든 소스 코드는 컴퓨터 내부에서 명령어로 변환된다. 프로그래밍 언어가 어떻게 명령어가 되어 실행되는지 알아보자.사람을 위한 언어를 고급언어라고 한다.컴퓨터가 직접 이해하고 실행할 수 있는 언어를 저급언어라고 한다.저급 언어에는 두 가지 종류가 있다. 기계어와 어셈블리

명령어의 구조와 주소 지정 방식에 대해 알아보자!명령어의 생김새와 작동 원리를 이해하자!명령어는 연산 코드와 오퍼랜드로 구성되어 있다.'명령어가 수행할 연산'을 연산코드라 하고, '연산에 사용할 데이터가 저장된 위치'를 오퍼랜드 라고한다.연산코드는 연산자, 오퍼랜드는

CPU의 구성 요소 중 ALU와 제어장치에 대해 알아보자ALU는 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들인다.ALU는 레지스터와 제어장치로부터 받아들인 피연산자와 제어 신호로 산술연산, 논리 연산 등 다양한 연산을

레지스터의 종류와 역할을 알아보고,각 레지스터를 통해 명령어가 처리되는 과정을 알아보자.프로그램 카운터명령어 레지스터메모리 주소 레지스터메모리 버퍼 레지스터플래그 레지스터범용 레지스터스택 포인터베이스 레지스터프로그램 카운터는 메모리에서 가져올 명령어의 주소, 즉 메모리

CPU가 하나의 명령어를 처리하는 흐름인 명령어 사이클과 그 흐름을 방해하는 인터럽트에 대해 알아보자.프로그램 속 각각의 명령어들은 일정한 주기가 반복되며 실행된다. 이 주기를 명령어 사이클이라고 한다.메모리에 저장된 명령어 하나를 실행하기 위해선? 명령어를 메모리에서

클럭과 코어, 스레드라는 개념을 이해하고 빠른 CPU를 만드는 설계 기법인 멀티코어와 멀티스레드란 무엇인지 알아보자.컴퓨터 부품들은 '클럭 신호'에 맞춰 일사분란하게 움직인다.CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다.클럭 속도가 높아지면?

명령어를 빠르고 효율적으로 처리하기 위해 CPU를 한시도 쉬지 않고 작동시키는 명령어 병렬 처리 기법을 알아보자.명령어 인출 -> 명령어 해석 -> 명령어 실행 -> 결과 저장같은 단계가 겹치지 않는다면 각 단계를 동시해 실행할 수 있음명령어를 겹쳐서 수행하면 명령어를

CPU의 언어인 ISA란 무엇인지 이해하고, 현대 CPU의 주요 설계방식인 CISC와 RISC의 정의와 차이점에 대해 알아보자.ISA = Instruction Set ArchitectureCPU마다 ISA 가 다를 수 있음서로 이해할 수 있는 명령어가 다름 = 어셈블리

RAM의 하드웨어적 특성과 종류에 대해서 알아보자!RAM은 휘발성 저장 장치이다.휘발성 저장 장치(volatile memory): 전원을 끄면 저장된 내용이 사라지는 저장 장치하드디스크나 SSD 등 보조기억장치는 비휘발성 저장 장치이다.비휘발성 저장 장치(non-vol

주소에는 물리 주소와 논리 주소가 있다. 이 두 주소의 개념과 차이, 그리고 두 주소 간의 변환 방법에 대해 알아보자!컴퓨터에서 사용하는 주소는 물리 주소와 논리 주소 두가지가 존재한다.정보가 실제로 저장된 하드웨어 상의 주소로 메모리가 사용한다.실행 중인 프로그램 각

저장 장치 계층 구조를 통해 저장 장치의 큰 그림을 그리고, CPU와 메모리 사이에 위치한 케시 메모리에 대해 알아보자!CPU와 가까울수록 저장 장치의 속도는 빠르다. 반대로 멀수록 저장 장치는 느리다.속도가 빠른 저장 장치일수록 용량이 작고 가격이 비싸다.저장 장치

하드 디스크와 플래시 메모리는 가장 대표적인 보조기억장치이다. 두 장치에 대해 알아보자!자기적인 방식으로 데이터를 저장하는 보조기억장치이다.자기 디스크(magnetic disk)의 일종으로 볼 수 있다.동그란 원판에 데이터를 저장하고, 원판을 회전시켜 뾰족한 리더기를

여러 보조기억장치를 더욱 안전하고 빠르게 활용하는 방법인 RIAD에 대해 알아보자!주로 하드 디스크와 SSD를 사용하는 기술로, 데이터의 안전성 호근 높은 성능을 위해 여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술. 여러 개의 디스크에 데

입출력장치는 컴퓨터 외부에 연결되는 장치를 말한다. 어떻게 연결되어있을까? 장치 컨트롤러와 장치 드라이버에 대해 알아보자!컴퓨터 내부와 정보를 주고받는 하드웨어 부품. 입출력 제어기(I/O controller), 입출력모듈((I/O module) 이라고도 함.다양한 입

💡 가장 보편적인 입출력 방법인 프로그램 입출력과 인터럽트 기반 입출력, DMA 입출력에 대해 알아보자!기본적으로 프로그램 속 명령어로 입출력장치를 제어하는 방법이다.CPU가 프로그램 속 명령어를 실행하는 과정에서 입출력 명령어를 만나면 CPU는 입출력장치에 연결된

💡 운영체제란 무엇이며, 왜 알아야 하는지 알아보자실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램시스템 자원 : 프로그램 실행에 필요한 요소들로 줄여서 자원이라고도 부른다.근본 프로그램이기 때문에 컴퓨터가 부팅될 때 메모리의 커

💡 커널이란 무엇인지 이해하고, 응용프로그램이 어떻게 운영체제의 도움을 받으며 실행되는지, 운영체제가 응용프로그램에 어떤 서비스를 제공하는지도 알아보자!운영체제의 핵심 서비스를 담당하는 부분이다.운영체제가 설치된 모든 기기에는 커널이 존재한다.어떤 커널을 사용하는지에

프로세스 관리는 운영체제의 핵심 서비스이다. 운영체제가 관리하는 프로세스가 무엇인지 알아보고, 프로세스가 실행되는 과정들을 살펴보자!사용자가 볼 수 있는 공간에서 실행되는 프로세스를 말한다.사용자가 볼 수 없는 공간에서 실행되는 프로세스이다.유닉스 체계의 운영체제에서

프로세스들은 각자의 상태를 가지고 계층적인 구조를 이루고 있다. 프로세스 상태란 무엇인지, 프로세스 계층 구조란 무엇인지 알아보고 코드를 통해 이들을 확인해보자!프로세스를 생성 중인 상태를 뜻한다.생성 상태를 거친 프로세스는 곧바로 실행 상태가 되지 않고 준비 상태가

스레드는 프로세스를 구성하는 실행의 흐름 단위이다. 이 말이 정확히 무엇을 의미하는지, 그리고 멀티스레드와 멀티프로세스의 차이가 무엇인지 알아보자!프로세스를 구성하는 실행의 단위를 뜻한다.한 번에 하나의 스레드가 실행되는 프로세스를 단일 스레드 프로세스라고 한다.한 번

💡 운영체제는 CPU를 어떻게 프로세스에 배분하는지 알아보자!운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 CPU 스케줄링(CPU scheduling)라고 한다.비디오 재생 및 디스크 백업 등 입출력 작업이 많은 프로세스를 입출력 집중 프로

운영체제에서 데드락(교착상태)이란, 시스템 자원에 대한 요구가 뒤엉킨 상태입니다. 즉, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황을 일컫습니다.상호 배제한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 사용

가장 기본적인 스케줄링 알고리즘에 대해 알아보자. 준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식이다.즉, CPU를 먼저 요청한 프로세스부터 CPU를 할당하는 스케줄링 방식이다.때때로 프로세스들이 기다리는 시간이 매우 길어질 수 있다는 부작용이

운영체제의 프로세스 관리 서비스 중 가장 중요한 두 가지를 꼽자면 스케줄링과 동기화이다. 이번에는 동기화에 대해 알아보자!프로세스 사이의 수행 시기를 맞추는 것을 프로세스 동기화(synchronization)라고 한다.프로세스뿐 아니라 스레드 또한 동기화의 대상이다.

💡 프로세스를 동기화하지 않으면 겉보기에 아무런 문제 없어 보이는 코드도 예끼치 못하게 작동할 수 있다. 동기화를 위한 대표적인 도구인 뮤텍스락, 세마포, 모니터에 대해 알아보자상호배제를 위한 동기화 도구로 동시에 접근하면 안되는 자원에 프로세스이다. 스레드의 동시접

교착 상태를 해결하는 것 또한 운영체제가 맡는 중요한 임무 중 하나이다. 교착 상태란 무엇이며, 그를 표현하는 자원 할당 그래프와 교착 상태의 발생 원인을 알아보자두 개 이상 프로세스가 각자 자원을 점유하고, 서로의 자원을 요구할 때에 더 이상 프로세스 진행이 불가해진

운영체제는 교착 상태를 회피할 수도, 예방할 수도, 검출 후 회복할 수도 있다. 각각의 방법에 대해 알아보자교착 상태 발생 조건에 부합하지 않게 자원을 분배하는 방법이다.교착 상태가 발생치 않도록 자원을 조금씩 할당하며, 교착 상태 위험이 있으면 자원을 할당하지 않는

메모리 관리 기법인 스와핑과 메로리에 프로세스를 할당하는 바익, 연속 메모리 할당의 부작용인 단편화에 대해 학습해보자현재 실행되지 않는 프로세스를 임시로 보조기억장치 일부 영역으로 쫓아내고, 그 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식이다.스와핑을 이용하면

메모리 관리 기법인 페이징의 생겨난 이유와 작동 원리를 알아보자외부 단편화 말고도, 물리 메모리보다 큰 프로세스를 실행할 수 없다는 단점이 있다.가상 메모리를 통해 해결할 수 있다.가상 메모리 관리 기법에는 페이징과 세그멘테이션 기법이 있다.

운영체제가 수많은 페이지를 어떻게 관리하는 지 알아보자프로세스를 메모리에 적재할 때 처음부터 모든 페이지를 적재하지 않고, 필요한 페이지만을 메모리에 적재하는 기법이다아무런 페이지도 메모리에 적재하지 않은 채 무작정 실행하는 기법은 순수 요구 페이징이라고 한다.요구 페

파일이란 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미한다.파일 = 이름+파일을 실행하기 위한 정보+파일 관련 부가 정보가 있다.파일 관련 부가 정보 = 속성+메타데이터이다.파일 유형은 운영체제가 인식하는 파일의 종류를 나타낸다.파일 유형에

파일 시스템이 파일과 디렉터리를 보조기억장치에서 어떻게 할당하고 접근하는지, 대표적인 파일 시스템인 FAT 파일 시스템과 유닉스 파일 시스템을 알아보자 파티셔닝과 포매팅 윈도우에서 보조기억장치(ex: SSD,하드디스크)를 사용하기 위해서는 파티셔닝과 포맷 작업을 거쳐