스레드에 대한 혼동스레드가 하드웨어적으로도 사용되고 소프트웨어적으로도 사용되는 단어다 보니 약간의 혼동이 있을 수 있다.하드웨어적 스레드: 하나의 코어가 동시에 처리하는 명령어 단위소프트웨어 스레드: 하나의 프로그램을 독집적으로 실행하는 단위 CPU의 성능을 높일 수 있는 설계CPU의 성능을 높일 수 있는 설계는 다음과 같다. - 높은 클럭 수 - 멀티 코어 - 멀티 프로세서이 외에 명령어 병렬 처리 기법, 비순차적 명령어 처리가 있다. 명령어 벙렬 처리 기법명령어 파이프라이닝 기법이라고도 불린다.하나의 명령어가 처리되는 과정을 비슷한 시간 간격으로 나누면 명령어 인출, 해석, 실행, 저장으로 말할 수 있다.👉 위 단계들은 서로 겹치지만 않는다면 한꺼번에 실행할 수 있다. 명령어 파이프라이닝에 실패하..
분류 전체보기
CPU가 명령어를 순차적으로 처리하는 양상명령어 사이클: cpu가 명령어를 처리하는 정형화된 주기, 흐름인출 사이클 -> 실행 사이클 -> 인출 사이클 -> 실행 사이클 -> 인출 사이클 -> 실행 사이클 -> ... 그러나, 간접 주소 지정 방식처럼 실제 연산에 사용될 데이터를 얻기 위해 한 번 더 메모리에 접근해야 할 경우가 있다. 오퍼랜드 필드에 유효 주소의 주소가 들어가 있다면 메모리에 두 번 접근해야 한다. 이때 간접 사이클이 추가된다.인터럽트cpu의 정상적인 실행 흐름을 방해하는 신호. exception, fault 동기 인터럽트 (예외, Exception)주로 CPU에 의해 발생, 명령어 처리 도중 비정상적인 상황에 마주했을 경우 발생한다. 디버깅할 때 break point도 여기에 해당한다..
CPU의 핵심 구성 요소 세 가지ALU (산술논리연산장치): 연산을 수행하는 장치(계산을 담당하는 회로)제어 장치: 명령어를 해석하고 제어 신호(컴퓨터 부품한테 어떤 동작을 할지 알려주는 일종의 전기 신호)를 내보내는 장치,레지스터(들): 명령어 처리 전후로 값을 임시 저장하는 장치로우 레벨(보안)을 개발하는 직군이면 레지스터와 친해져야 한다.ALU레지스터로부터 피연산자를 받아들이고, 제어 장치로부터 제어 신호(연산할 작업)를 받아들인다. 그리고 연산의 결과를 레지스터, 연산에 대한 부가 정보를 플래그 레지스터에 저장한다. 플래그 레지스터연산의 결과에 대한 부가 정보부호 플래그, 제로 플래그, 캐리 플래그, 오버플로우 플래그, 인터럽트 플래그(인터럽트가 가능한지 여부), 슈퍼바이저 플래그 총 여섯 개가 ..
컴퓨터는 0과 1만을 이해한다모든 양수를 1과 0으로 표현하는 방법: 이진수 binary모든 음수를 1과 0으로 표현하는 방법: 2의 보수모든 소수(분수)를 1과 0으로 표현하는 방법: 부동 소수점모든 문자를 1과 0으로 표현하는 방법: 문자 집합(컴퓨터가 이해할 수 있는 문자들의 모음) & 인코딩 -> 이 방법은 컴퓨터마다 다를 수 있다. 2의 보수법 (2's compliment)현재는 대표적으로 음수를 나타내는 방법이다. (0과 1만으로 음수를 표현하는 방법 중 하나)2의 보수값은 이진수 값에 모든 0과 1을 뒤집은 뒤(여기까지는 1의 보수) 1을 더한 값이다 이걸 왜 사용하는가?컴퓨터 내부에서는 음수 기호를 모르기 때문에 모든 숫자가 0과 1만으로 이루어져 있기 때문이다. 💡 근데 0과 1만으..
1. 즉시 주소 지정가장 간단한, 그러나 자주 사용되지는 않는다.연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시가장 빠른 주소 지정 + 데이터 크기에 제한2. 직접 주소 지정오퍼랜드 필드에 유효 주소(연산에 사용될 데이터가 저장된 메모리 주소)를 직접 명시오퍼랜드 필드로 표현 가능한 메모리 주소 크기에 제한이 생긴다.cpu가 레지스터에 접근하는 속도모다 메모리에 접근하는 속도가 훨씬 느리다. 3. 간접 주소 지정오퍼랜드 필드에 유효 주소의 주소 명시유효 주소 크기에 제한은 없으나, 속도가 비교적 느림(유효 주소에 접근하고 그 유효주소가 가리키고 있는 연산 코드에 사용될 실제 데이터가 있는 곳을 한번 더 바라봐야 한다.)cpu가 메모리에 2번 접근 시도 해야 한다. 4. 레지스터 주소 지정연산에 사용할 ..
컴퓨터 구조를 배우는 이유모든 프로그램은 컴퓨터 부품이 실행한다: 성능 & 용량 & 비용 이 세 가지가 컴퓨터 공학을 학습해야 하는 이유다. 컴퓨터 구조프로그램을 이루는 두 정보 (0과 1로 이루어진 정보)명령어 instruction데이터 data컴퓨터의 네 가지 핵심 부품CPU레지스터 - 작은 임시 저장장치, 여러개일수 있다.ALU - 계산기 회로, overflow 검출기제어 장치 - 명령어를 실질적으로 해석해주는 장치, 제어 신호를 내보내주는 장치메인 메모리 & 캐시 메모리(CPU가 메인메모리에 접근하는 시간을 조금 더 줄여주기 위한 보조적인 저장공간)메인 메모리에는 주소가 있다.보조기억장치입출력장치+ 위 네 가지 핵심 부품을 한데 모아서 저장해주는 곳을 '마더 보드'라고 한다.+ 메인 보드(마더 보..
2024.07.16 AI란?artificial intelligence단순 소수 분별하는 코드랑 마리오 게임을 실제로 진행할 수 있는 인공지능과 chat gpt의 차이가 뭘까입력: 소수 분별하는 코드는 숫자를 입력으로 받는다. 마리오 게임을 자동으로 플레이하는 경우 이미지와 오브젝트 정보를 입력으로 받을 수 있다.학습 과정: 소수 구분은 정해진 알고리즘에 따라 동작한다. 마리오 게임의 경우 강화학습을 통해 학습할 수 있다.챗지피티: 챗GPT는 딥러닝 기반의 언어 모델이다. 지도학습 vs 비지도학습지도학습: 사람이 데이터를 만들고 정답을 제공한다. 머신러닝과 딥러닝 모두에 사용될 수 있지만 주로 머신러닝에서 사용된다.비지도학습: 사람이 데이터를 제공하지만 정답을 알려주지 않는다. 딥러닝은 주로 신경망(ne..
📌 서론우리는 현재 redis에 정보를 넣어놓고 거기서 조회하고 삭제하고 저장하는 작업을 하고 있다. 그런데 동일한 프로젝트를 2개의 인스턴스로 띄우기 때문에 redis에 동시성 이슈가 생기는 것을 방지해야 했다. 여기서 동시성 이슈를 해결하기 위해 적용한 방법을 간단하게 소개해보려고 한다. 동시성 이슈 해결을 위한 Redis Lock동시성 이슈는 여러 프로세스나 스레드가 동일한 자원에 동시에 접근할 때 발생할 수 있는 문제를 의미한다. 이러한 문제를 해결하기 위해 Redis를 사용한 잠금 메커니즘을 활용할 수 있다. 동시성 이슈란?동시성 이슈는 여러 프로세스나 스레드가 동시에 같은 자원에 접근할 때 발생할 수 있는 문제를 말한다. 예를 들어, 두 개의 인스턴스가 같은 Redis 데이터베이스에 접근하여..