![[컴퓨터 구조] 캐시 메모리 (Cache Memory)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbc6668%2FbtsG3MmFLUT%2FCITyzoKwXg0bHBvzwQYq2K%2Fimg.jpg)
★KEYWORD★캐시메모리 / 속도 차에 따른 병목 현상을 줄이기 위한 범용 메모리 캐시 메모리(Cache Memory) 란?캐시 메모리(cache memory)는 속도가 빠른 장치와 느린 장치 사이에서 속도 차에 따른 병목 현상을 줄이기 위한 범용 메모리이다. 대표적으로, 속도가 빠른 CPU 코어와 속도가 느린 메모리 사이에서 속도 차에 따른 병목 현상을 완화하는 역할을 한다. CPU는 메모리에 저장된 데이터를 읽어오는데, 자주 사용하는 데이터를 캐시 메모리에 저장하면 그 데이터를 다시 사용할 때는 메모리가 아닌 캐시 메모리에서 데이터를 읽어올 수 있다.캐시(cache)란 무엇일까?캐시(cache, 문화어: 캐쉬, 고속완충기, 고속완충기억기)는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소..
![[컴퓨터 구조] Race Condition (경쟁 상태)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfrUce%2FbtsG4i6KoSl%2FRBRTj5Xx6v9CCGworYkbqK%2Fimg.jpg)
★KEYWORD★레이스 컨디션 / 경쟁하는 상태 / 두 개 이상의 프로세스가 공통 자원을 병행으로 읽거나 쓰는 동작을 할 때 순서에 따라 실행결과가 달라지는 것 / 상호배제 / 데드락 / 기아상태 / 세마포어 / 뮤텍스 Race Condition 이란?두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황을 말한다.Race의 뜻 그대로, 간단히 말하면 경쟁하는 상태, 즉 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 말한다.경쟁 프로세스의 경우, 세 가지 제어 문제에 직면한다.Mutual exclusion, deadlock, sta..
![[컴퓨터 구조] 컴파일러 vs 인터프리터](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnbZfZ%2FbtsG6eorNzy%2FuJ2Uc2StDpKQPAk097dF71%2Fimg.jpg)
★KEYWORD★컴파일러 / 인터프리터 / 번역프로그램 / 컴파일러: 코드전체를해석 / 인터프리터: 한 줄씩 읽어들임 / 컴파일러 인터프리터 차이 컴파일러(compiler)는 무엇이고 어떻게 작동할까?컴파일러는 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램이고,코드 전체를 통째로 해석하는 특징을 가지고있다. 작동하는 과정은 다음과 같다. 소스 코드 읽기 :소스 코드 파일을 읽어들인다어휘 분석 : 소스 코드를 토큰이라는 작은 요소로 분해한다. 이 단계에서 컴파일러는 주석, 공백, 탭 문자 등을 제거하고, 키워드, 연산자, 식별자, 리터럴 등의 토큰으로 분류한다.구문 분석 : 토큰들을 구조화 하여 추상 구문 트리를 생성한다. 이 과정에서 문법에 따라 토큰들을 조합..
![[컴퓨터 구조] 데드락 (DeadLock, 교착 상태)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbUifa%2FbtsFV7KQJH1%2F7A0zD5ujrjJxDj8kTKnC41%2Fimg.jpg)
★KEYWORD★데드락 / 교착상태 / 한정된 자원을 여러곳에서 사용하려고 할 때 / 발생조건은 4가지 모두 성립해야 함 / 상호배제 / 점유대기 / 비선점 / 순환대기 / 해결법 : 예방, 회피, 데드락탐지 및 회복 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태를 말한다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생 한 프로세스가 자원을 요청했을 때, 동시에 그 자원을 사용할 수 없는 상황이 발생할 수 있음. 이때 프로세스는 대기 상태로 들어감 대기 상태로 들어간 프로세스들이 실행 상태로 변경될 수 없을 때 '교착 상태' 발..
![[컴퓨터 구조] 인터럽트 (Interrupt)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEcnIO%2FbtsG3m25FLT%2F7sPPmGvUKk8D5KPfJV7VMk%2Fimg.jpg)
★KEYWORD★프로세스 실행 도중 예기치 않은 상황이 발생할 때 상황을 처리하고 실행 중인 작업으로 복귀하는 것 / 외부 인터럽트 / 내부 인터럽트 / 끼어들기 / 가로막기 인터럽트란 프로세스 실행 도중 예기치 않은 상황이 발생할 때 발생한 상황을 처리한 후 실행 중인 작업으로 복귀하는 것을 말한다. 인터럽의 종류는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 나뉜다. 대부분의 컴퓨터는 한 개의 CPU를 사용하므로 한 순간에는 하나의 일 밖에 처리할 수 없기 때문에 어떤 일을 처리하는 도중에 우선 순위가 급한 일을 처리할 필요가 있을 때 대처할 수 있는 방안이 필요하다. 예를 들면, 키보드의 키를 하나 누르면, 눌려진 키 코드 값이 키보드 버퍼에 입력된 후 CPU에 인터럽트가 걸린다. 그럼 현..