목록CS (36)
delpho
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lVUZQ/btrIYBYrjfA/eHuGXSk4Hn9Agoy0kVlYMk/img.png)
_1. 캐시의 지역성에 대해 설명해보세요. 캐시에 저장할 데이터는 적중율을 극대화하기위해 지역성을 가져야합니다. 지역성은 어느한 순간에 특정 부분을 집중적으로 참조하는 특성입니다. 지역성의 종류는 시간적, 공간적 지역성이 있습니다. 시간적 지역성은 특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은것이며 공간적 지역성은 특정 데이터와 가까운 주소가 순서대로 접근되는 경우입니다. [ 캐시 메모리 Cache Memory ] 주기억장치에서 자주 사용하는 프로그램과 데이터를 저장해두어 속도를 빠르게 하는 메모리 캐시 기억장치와 주기억장치 사이에서 정보를 옮기는 것을 사상(Mapping, 매핑)이라고 함 매핑의 3가지 방법 - 직접 매핑(Direct Mapping), 연관 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/tyt6s/btrICZ5e6cg/2OrtaN71CM7hVXp77z17h0/img.png)
_1. 가상 메모리에 대해 설명해보세요. 가상 메모리는 물리적 공간의 제한을 극복하기 위해 실제 메모리 크기와 상관없이 메모리를 이용할 수 있도록 가상의 메모리 주소를 사용하는 방법입니다. 프로세스 실행할때 필요한 부분만 메모리에 적재하면서 메모리 관리가 가능합니다. [ 가상 메모리 등장 배경 ] 초창기 컴퓨터에서는 사용 가능한 RAM의 용량이, 가장 큰 실행 애플리케이션의 주소 공간보다 커야 했음. 이후 컴퓨터에서는 프로그래머가 애플리케이션의 일부분만 기억장치에 올려 실행하도록 지정할 수 있게 하는 오버레이 기법을 사용하여 메모리 부족 문제를 해결하고자 했음. 하지만 이 역시 전반적인 메모리 부족 문제를 해결할 수 없었음. 오버레이를 사용하는 프로그램은 그렇지 않은 프로그램보다는 메모리를 덜 사용했지만..
_1. Thread-safe 하다는 의미와 설계하는 법을 설명해보세요. thread-safe는 어떤떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없다는 의미입니다. 공유 자원에 불변객체를 사용하거나 뮤텍스, 세마포어를 사용하여 통제할 수 있도록 설계하면 좀 더 thread-safe해집니다. [ Thread-safe 하다 ] 멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음 엄밀하게는, 하나의 함수가 한 스레드로부터 호출되어 실행 중일 때, 다른 스레드가 그 함수를 호출하여 동시에 함께 실행되더라도 각 스레드에서의 함수의 수행 결과가 올바로 나오는 것으로 정의 교..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lIFw2/btrInIJk5G5/m0qxlKkkjwmu6i7Cc72GjK/img.png)
_1. 교착상태가 무엇인지 설명해주세요 교착상태란 두 개 이상의 프로세스나 스레드가 필요한 자원을 얻지 못해서 무한히 다음 자원을 기다리게 되는 상태입니다. 예를들어, 프로세스1, 2가 자원1,2를 얻어야하는 상황에서 프로세스1이 자원1을, 프로세스2가 자원2를 동시에 얻게 된다면 각각 자원 1,2를 얻기위해 무한정 기다리는 상태가 되버립니다. [ 교착 상태란 (DeadLock) ] 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태 [ 교착상태가 일어나는 경우] 프로세스1, 2가 자원1, 2를 모두 얻어야 한다고 가정! t1 : 프로세스1이 자원1을 얻음 / 프로세스2가 자원2를 얻음 t2 : 프로세스1은 자원2를 기다림 / ..