차곡차곡 성 쌓기
article thumbnail
컴퓨터 구조 #6 - CPU 내부 구성(ALU, 제어 장치)
CS/컴퓨터 구조 2024. 1. 27. 02:02

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다. ALU CPU의 핵심 부품 중 하나로 연산을 담당하는 부품이다. ALU에서 연산을 하기 위해서는 피연산자와 수행할 연산이 필요하다. ▶︎ 받아들이는 정보 제어 장치, 레지스터 ➞ ALU 제어 장치 : 제어 신호 보냄 레지스터 : 피연산자 보냄 ▶︎ 내보내는 정보 ALU ➞ 레지스터, 플래그 레지스터 빠르기 때문에 메모리가 아닌 레지스터에게 보낸다. 레지스터 :결과 값 플래그 레지스터 : 연산 결과에 대한 부가 정보 (ex: 양수, 음수 플래그, 범위 오버) 플래그 레지스터 : 플래그의 종류 부호 플래그 : 연산한 결과의 부호를 나타낸다. 제로 플래그 : 연산 결과가 0인지 나타낸다. 캐리 플래그 :..

article thumbnail
컴퓨터 구조 #5 - 명령의 구조와 주소 지정 방식
CS/컴퓨터 구조 2024. 1. 26. 14:48

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다. 명령의 구조와 주소 지정 방식 명령어는 컴퓨터를 움직이게 하는 정보이다. 우리가 짠 코드가 최종적으로 컴파일되어 컴퓨터가 이해하는 기계어로 변환된 것이다. 이때 명령어는 당연하게도 정해진 구조가 있다. 명령어의 구조에 대하 알아보고, 데이터를 어떻게 저장하는지 주소 지정 방식에 대해 알아본다. 명령어의 구조 명령 코드(operation code)와 오퍼랜드(operand)로 구성되어 있다. 명령 코드 : 명령어가 수행할 연산 오퍼랜드 : 연산에 사용할 데이터 또는 여산에 사용할 데이터가 저장된 위치 무엇을 대상, 무엇을 수행 오퍼랜드 연산에 사용될 데이터 or 연산에 사용될 데이터가 저장된 위치(주..

article thumbnail
컴퓨터 구조 #4 - 저급언어와 고급언어
CS/컴퓨터 구조 2024. 1. 26. 02:36

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제" 책과 강의를 기반으로 작성하였습니다. 저급언어 기계어 : 0과 1로 이루어진 명령어로 구성 (2진수, 16진수) 어셈블리어 : 기계어를 읽기 편한 상태로 번역한 저급언어 0101 0101 → Push rbp 1100 0011 → ret 고급 언어 컴퓨터가 이해할 수 있는 기계어로 변환하기 위해 인터프리터나 컴파일러가 필수적으로 요구됨 컴파일 언어 인터프리터 언어 ✓ 컴파일 언어 코드가 실행되기 전 컴파일러를 거쳐서 기계어로 변환되어 실행되는 프로그래밍 언어 소스 코드를 전체적으로 컴파일하여 목적 코드(기계어 또는 중간 코드)로 변환 컴파일 과정에서 최적화(주석 제거 등)가 가능하며, 목적 코드는 특정 하드웨어 아키텍처에 최적화되어 실행 C, C++(..

article thumbnail
컴퓨터 구조 #3 - 0과 1로 문자를 표현하는 방법
CS/컴퓨터 구조 2024. 1. 24. 23:57

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제" 책과 강의를 기반으로 작성하였습니다. 문자 집합과 인코딩 컴퓨터 어떻게 문자를 이해하는지 알기 위해선 다음 3가지 개념을 알고 있어야 한다. 문자 집합, 인코딩, 디코딩 ▶︎ 문자 집합 컴퓨터가 이해할 수 있는 문자의 모음 ex ) 아스키 코드, 유니 코드 등 ▶︎ 인코딩 코드화 하는 과정 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정 ▶︎ 디코딩 코드를 해석하는 과정 0과 1로 표현된 문자 코드를 문자로 변환하는 과정 아스키 코드 초창기 문자 집합 중 하나 알파벳, 아리비아 숫자, 일부 특수 문자 및 제어 문자 표현 7비트로 하나의 문자를 표현 => 128개의 문자 표현 1비트는 오류 검출을 위해 사용되는 패리티 비트 But 한국어, 중국어..

article thumbnail
컴퓨터 구조 #2 - 0과 1로 숫자를 표현하는 방법
CS/컴퓨터 구조 2024. 1. 24. 13:40

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제" 책과 강의를 기반으로 작성하였습니다 정보단위와 워드 ▶︎ 정보단위 비트 : 0과 1을 표현. 가장 작은 정보 단위 1byte 8bit 1kB 1000Byte 1MB 1000kB 1GB 1000MB 1TB 1000GB c.f) 1024개씩 묶은 단위는 따로 있다. kiB, MiB, GiB, ・・・ ▶︎ 워드(word) CPU가 한 번에 처리할 수 있는 정보의 크기 단위 2 진수 ▶︎ 표기방법 (2) 첨자를 붙이기 앞에 ob 붙이기 ▶︎ 음수 표현하기 : 2의 보수(가장 대표적 방법) 쉬운 방법 : 모든 0과 1을 뒤집고, 1더한 값 ▶︎ 음수와 양수를 어떻게 구별? 예를 들어 01₂은 -11이기도 하면서 1로 표현 됨 → 보기에는 구별 못한다. 하지만..

article thumbnail
컴퓨터 구조 #1 - 대략적인 컴퓨터 구성(CPU, 메모리, 레지스터)
CS/컴퓨터 구조 2024. 1. 24. 01:47

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제" 책과 강의를 기반으로 작성하였습니다 컴퓨터가 이해하는 정보 ▶︎ 데이터 숫자, 문자, 이미지, 동영상 같은 정적인 정보 컴퓨터와 주고 받는/ 내부에 저장된 정보를 통칭하기도 함 ▶︎ 명령어 컴퓨터는 명령어를 처리하는 기계이다. 명령어는 컴퓨터를 실질적으로 움직이는 정보 데이터는 명령을 위한 정보일 뿐이다. ex) 1과 2를 더하라 명령어 : 더하라 데이터 : 1, 2 컴퓨터의 4가지 핵심 부품 CPU 메모리 보조기억 장치 입축력 장치 4개의 장치를 연결해주고 합치기 위해 메인 보드가 존재한다. 각 핵심 부품에 대해 알아보자. ▶︎ 메모리 메인 메모리(주기억 장치)를 의미하며 RAM이다 -> 휘발성 장치 현재 실행되는 프로그램(프로세스)의 명령어와 데..

article thumbnail
[백준] 상어 초등학교 : 21608 : Java - 구현
알고리즘/백준 2024. 1. 23. 17:40

1. 문제 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 2. 접근 N의 범위는 3

article thumbnail
[백준] 강의실 배정 : 11000 : Java - 그리디
알고리즘/백준 2024. 1. 22. 22:11

1. 💎 문제 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 2. 🤔 접근 구해야 하는 것은 최소 강의실의 수이다. 그러므로 n개의 강의실을 운영하다가 n개의 강의실이 모두 꽉 차있어 새로운 강의를 열 수 없을 때, 강의실을 늘려준다. 1. 우선 순위 큐 사용 n개의 강의실을 운영하기 위해 우선 순위 큐를 사용한다. 왜냐하면 최소의 강의실을 유지하기 위해서는 여러 개의 강의실 중 가장 일찍 끝나는 강의실에 새로운 강의를 배정해야 되기 때문이다. 그러므로 항상 가장 일찍 끝나는 강의실을 찾기 위해 삽입 시 오름차순 정렬을 해주는 우선 순위 큐를 사용한다. 2..

article thumbnail
HTTP 웹 기본 지식 #1 - 인터넷 통신
CS/인터넷 2024. 1. 21. 01:27

본 포스팅은 인프런의 김영한님의 `모든 개발자를 위한 HTTP 기본 웹 지식` 강의를 수강하고 정리한 내용입니다. 인터넷 통신 인터넷은 어떻게 통신할까? 인터넷을 거치면서 복잡한 노드들을 통과해야 함 -> IP (인터넷 프로토콜) 도입 IP (인터넷 프로토콜) 통신을 위해 각 서버에게 IP 주소를 부여함. 클라이언트도 IP 주소를 부여 받아야 하고, 서버도 IP주소를 부여받아야 함. IP (인터넷 프로토콜) 역할 지정한 IP주소에 데이터 전달 패킷이라는 통신 단위로 전달 IP 패킷 정보 출발지 IP, 목적지 IP, 기타... 전달할 정보에 IP 패킷을 감싸서 전달, 전달.. IP 프로토콜의 한계 1. 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송 됨 중간 서버가 갑자기 꺼지면 패킷..

article thumbnail
[프로그래머스] 정렬 : K번째 수

1. 🍎 문제 2. 🤔 접근 구현해야 되는 작업은 다음 3가지이다. 또한 주어진 인덱스는 1부터 시작하는 것에 주의한다. 1. 배열을 i부터 j까지 자른다. 2. 자른 배열을 정렬한다. 3. k번째 요소를 answer 배열에 추가한다. 3. 💡 구현 1. 배열 자르기 | Arrays.copyOfRange ( 원본 배열, 시작인덱스(inclusive), 끝 인덱스(exclusive) ) copyOfRange 함수를 사용하면 원하는 인덱스만큼 배열을 카피할 수 있다. // 배열 자르기 int [] sliceArray = Arrays.copyOfRange(array, commands[t][0]-1, commands[t][1]); 2. 정렬 | Arrays.sort() sort 함수를 사용하면 오름차순 정렬을 ..

728x90