분류 전체보기 37

[CS] {컴퓨터 구조} 입출력장치

1. 장치 컨트롤러와 드라이버1) CPU - 입출력장치 정보 주고받기> 입출력장치는 앞서 학습한 CPU, 메모리보다 다루기가 더 까다로움.(1) 입출력장치에는 종류가 너무나도 많다- 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어렵다. (2) 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다* 전송률 : 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표=> 이런 이유로 입출력 장치는 장치 컨트롤러(= 입출력 제어기, 입출력 모듈)를 통해 컴퓨터와 연결된다. 2) 장치 컨트롤러의 역할- CPU와 입출력장치 간의 통신중개- 오류 검출- 데이터 버퍼링* 버퍼링 : 전송률이 높은 장치와 낮은 장치사이에 주고받는 데이터를 "버퍼"라는 임시 저장공간에 저장하여 전송..

CS 공부 2025.04.15

[CS] {컴퓨터 구조} 보조기억장치

1. 하드디스크- 자기적인 방식으로 데이터 저장- 기본적으로 트랙과 섹터 단위로 데이터 저장 * 실린더 : 여러겹의 플래터 상에서 같은 트랙이 위치 한 곳을 모아 연결한 논리적 단위- 연속된 정보는 한 실린더에 기록 * 하드 디스크가 저장된 데이터에 접근하는 시간  (1) 탐색 시간: 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간  (2) 회전 지연: 헤드가 있는 곳으로 플래터를 회전시키는 시   (3) 전송 시간: 하드디스크와 컴퓨터간에 데이터를 전송하는 시간2. 플래시 메모리- 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치- 플래시 메모리는 하드 디스크와 달리 덮어쓰기가 불가능- 읽기와 쓰기는 페이지 단위로 이루어짐- 삭제는 (페이지보다 큰) 블록 단위로 이루어짐+ 페이지의 상태(..

CS 공부 2025.04.13

[C#] 가비지 컬렉터 (Garbage Collector)

1. 개념: C#, JAVA와 같은 Managed Language에 존재하며 더 이상 사용하지 않는 객체, 데이터를 자동으로 탐지하고 메모리에서 제거해주는 시스템. C#에서 GC는 .NET 프레임워크의 일부로, 개발자가 메모리 관리에 신경을 덜 쓰도록 도움.힙 영역에서 동작.2. 동작원리- Mark And Sweep 알고리즘을 사용하여 동작. 1) 마킹(Marking) : GC는 루트 오브젝트로부터 시작하여 모든 접근가능한 객체들을 마킹합니다.* 루트 오브젝트 - 정적변수(Static), 스택영역의 변수, CPU 레지스터 2) 스위핑(Sweeping): 마킹되지 않은 객체들을 힙에서 제거하여 메모리를 회수 3) 컴펙션(Compaction) : 남아있는 객체들을 힙의 시작부분으로 이동시켜 메모리 단편화를 ..

C# 공부 2025.04.11

[CS] {컴퓨터 구조} 메모리

1. RAM의 특징- 휘발성 저장장치- CPU의 명령에 의해 보조기억장치에서 데이터를 가져와서 실행- RAM의 용량이 클수록 많은 프로그램들을 동시에 실행하는 데에 유리 2. RAM의 종류1) DRAM(Dynamic RAM)- Dynamic = '동적의'- 저장된 데이터가 동적으로 사라지는 RAM- 데이터 소멸을 막기 위해 주기적으로 재활성화 해야 함- 상대적으로 소비전력이 낮고 저렴하며 집적도가 높아 대용량으로 설계하기 용이함-> 일반적으로 메모리로 사용되는 RAM 2) SRAM(Static RAM)- Static = '정적의'- 저장된 데이터가 사라지지 않는 RAM(전원 끄면 사라짐)- DRAM보다 일반적으로 더 빠름- 상대적으로 소비전력이 높고 비싸며 집적도가 낮아 '대용량으로 설계할 필요가 없으나..

CS 공부 2025.04.10

[CS] 프로세스와 스레드의 차이, 멀티 스레드 VS 멀티 프로세스

1. 프로세스- 운영체제에서 실행중인 프로그램 '하나'를 의미- 각 프로세스는 독립된 메모리공간(코드, 데이터, 힙, 스택 등)을 가지고 있음- 다른 프로세스와 자원 공유 불가2. 스레드- 프로세스 내에서 실제로 작업을 수행하는 실행 단위- 같은 프로세스 내의 여러 스레드는 '코드, 데이터, 힙을 공유'하고 '스택은 독립적'.- 자원 공유가 용이하지만, 그만큼 동기화 문제 발생 가능3. 멀티 프로세스 VS 멀티 스레드 멀티 프로세스멀티 스레드메모리 구조각 프로세스가 독립적인 메모리 사용스레드들이 공유 메모리 사용안정성하나가 죽어도 다른 프로세스 영향없음(안정적)하나에 문제 발생 시 전체 프로세스에 영향 가능자원공유어려움용이함(동기화 필요)생성/전환 비용큼작음예시크롬 브라우저 탭스레드 1-게임 내 입력처리..

CS 공부 2025.04.10

[CS] {컴퓨터 구조} CPU 심화

1. 빠른 CPU를 위한 설계 기법1) 클럭클럭속도 : 헤르츠 단위로 측정헤르츠 : 1초에 클럭이 반복되는 횟수필요이상으로 클럭을 높이면 발열이 심각해짐 2) 코어&멀티코어(1) 코어: CPU 내에서 명령어를 실행하는 부품으로 여러개 있을 수 있음전통적으로 '명령어를 실행하는 부품'은 원칙적으로 하나만 존재But, 오늘날 CPU에는 '명령어를 실행하는 부품'은 여러개 존재(2) 멀티코어: 여러개의 코어를 포함하고 있는 CPU 3) 스레드&멀티스레드스레드 : '실행 흐름의 단위'(1) 하드웨어적 스레드(= 논리 프로세서): 하나의 코어가 동시에 처리하는 명령어 단위 (2) 소프트웨어적 스레드: 하나의 프로그램에서 독립적으로 실행되는 단위 * 1코어 1스레드 CPU도 여러 소프트웨어적 스레드를 만들 수 있다..

CS 공부 2025.04.09

[CS] {컴퓨터 구조} CPU 구조

1. ALU와 제어장치1) ALU가 받아들이는 정보계산을 하기 위해서는 피연산자와 수행할 연산이 필요- 레지스터로부터 피연산자를 받아들이고, 제어장치로부터 제어 신호를 받아들임.** 플래그 : 연산결과에 대한 부가정보(이진법 음수 표현할 때, 연산결과가 0인지, 오버플로우가 발생했는지 확인할 때 사용) 2) 제어장치(1) 받아들이는 정보a. 클럭 : 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위 b. 해석할 명령어 : 명령어 레지스터에서 이번에 해석할 명령어를 받아옴c. 플래그d. 제어신호 : 입출력장치 또한 제어신호를 발생시킬 수 있음 (2) 내보내는 정보a. CPU 내부에 전달하는 제어신호( 레지스터, ALU )b. CPU 외부에 전달하는 제어신호( 메모리, 입출력장치 )2. 레지..

CS 공부 2025.04.08

[CS] {컴퓨터 구조} 언어&명령어

1. 소스코드와 명령어1) 고급언어와 저급언어(1) 고급언어 : 개발자가 이해하기 쉽게 만든 언어 (ex. C, C++, C#, Phyton...)컴파일 언어 - 컴파일 언어로 작성된 소스 코드는 컴파일러에 의해 저급언어로 변환(= 컴파일)- 저급언어인 목적코드 생성인터프리터 언어- 인터프리터에 의해 한 줄씩 실행- 소스코드 전체가 저급 언어로 변환되기까지 기다릴 필요 없음 (2) 저급언어 : 컴퓨터가 이해하고 실행하는 언어 (ex. 기계어, 어셈블리어)기계어 : 0과 1로 이루어진 명령어로 구성된 저급언어어셈블리어 : 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급언어2. 명령어의 구조1) 연산코드와 오퍼랜드명령어는 연산코드와 오퍼랜드로 구성됩니다.(1) 연산코드 : 수행할 연산(1. 데이터..

CS 공부 2025.04.07

[CS] {컴퓨터 구조} 0과 1로 숫자/문자를 표현하는 방법

1. 정보단위비트(bit) : 0과 1을 표현하는 가장 작은 정보 단위- n비트로 2&n가지의 정보 표현 가능- 프로그램은 수많은 비트로 이루어져있음- 비트보다 더 큰 단위를 사용(ex. 바이트, 킬로바이트...)1바이트(byte)8 비트1킬로바이트(KB)1,024 바이트1메가바이트(MB)1,024 킬로바이트1기가바이트(GB)1,024 메가바이트1테라바이트(TB) 1,024 기가바이 워드(word)-CPU가 한번에 처리할 수 있는 정보의 크기 단위 2. 이진법0과 1로 수를 표현하는 방법을 나타냄1) 0과 1로 음수 표현하기 : 2의 보수-  (원래 정의) 어떤 수를 그보다 큰 2^n에서 뺀 값EX. 11(2) 보다 큰 2^n( = 100(2))에서 11(2)를 뺀 값 -> 01(2)-  (더 쉬운 방법..

CS 공부 2025.04.06

[CS] {컴퓨터 구조} 컴퓨터 구조의 큰 그림

1. 컴퓨터가 이해하는 정보1) 데이터숫자, 문자, 이미지, 동영상과 같은 정적인 정보컴퓨터와 주고받는/내부에 저장된 정보를 데이터라 통칭0과 1을 숫자/문자로 표현하는 방법2) 명령어컴퓨터는 명령어를 처리하는 기계컴퓨터를 실질적으로 움직이는 정보데이터는 명령어를 위한 일종의 재료 2. 컴퓨터의 네가지 핵심 부품1) CPU: 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 부품(1) 산술논리연산장치(ALU) : 계산기(2) 레지스터 : CPU 내부의 작은 저장장치(3) 제어장치 : 제어 신호를 내보내고, 명령어를 해석하는 장치* 제어신호 = 컴퓨터 부품들을 관리하고 작동시키기 위한 전기 신호(메모리 읽기/쓰기 신호)  2) 메모리(주기억장치): 현재 실행되는 프로그램(프로세스)의 명령어와 데이..

CS 공부 2025.04.05