프로그래머는 본인이 만든 프로그램을 실행할 때 무슨 일이 일어나는지 알기 위해서 전형적인 시스템에서의 하드웨어 조직을 이해할 필요가 있다. 아래는 시스템의 하드웨어 조직 구성도이다. 버스(Buses) : 시스템 내를 관통하는 전기적 배선군을 버스라고 하며, 컴포넌트들
위 그림처럼 프로세서가 프로그램을 실행하면 프로그램이 로딩될 때 디스크에서 메인 메모리로 복사되고, 프로그램을 실행할 때 인스트럭션들은 메인 메모리에서 프로세서로 복사된다. 이러한 여러 복사과정들이 프로그램의 실제 작업을 느리게 하는 오버헤드(overhead)다.레지
운영체제(Operating System)는 하드웨어와 소프트웨어 사이에 위치한 소프트웨어 계층으로 생각할 수 있다. 응용프로그램이 하드웨어를 제어하려면 언제나 운영체제를 통해서 해야 한다.운영체제는 두 가지 주요 목적을 가지고 있다.제멋대로 동작하는 응용프로그램들이 하
프로세스는 실행 중인 프로그램에 대한 운영체제의 추상화다. 프로세스는 동시에(concurrently) 실행될 수 있으며, 한 프로세스의 인스트럭션들이 다른 프로세스의 인스트럭션들과 섞일 수 있다.이는 한 개의 CPU가 다수의 프로세스를 동시에 실행하는 것처럼 보이게 해
개별 시스템 관점에서의 네트워크 개별 시스템의 관점에서 볼 때, 네트워크는 단지 또 다른 입출력장치로 볼 수 있다. 메인 메모리로부터 네트워크 어댑터로 일련의 바이트를 복사할 때, 데이터는 로컬디스크 드라이브 대신에 네트워크를 통해서 다른 컴퓨터로 이동된다. 마찬가지로
암달의 법칙은 초창기 계산학 개척자 진 암달(Gene Amdahl)이 한 시스템의 일부 성능 개선의 효율성에 대해 관찰을 하다가 발견한 법칙이다. 핵심은 다음과 같다. 우리가 어떤 시스템의 한 부분의 성능을 개선할 때, 전체 시스템 성능에 대한 효과는 그 부분이 얼마나
동시성(concurrency) : 다수의 동시에 벌어지는 일을 갖는 시스템에 관한 일반적인 개념병렬성(parallelism) : 동시성을 사용해서 시스템을 보다 빠르게 동작하도록 하는 것으로, 컴퓨터 시스템의 다양한 수준의 추상화에서 활용쓰레드를 이용하면 한 개의 프로
메모리는 손실에 취약하다. 만일 프로세스가 무심코 다른 프로세스가 사용하고 있는 메모리를 쓰게 되면, 이 프로세스는 프로그램의 논리와 전혀 무관하게 실패하게 될 수 있다.메모리를 보다 효율적이고 더 적은 에러를 갖도록 관리하기 위해 사용가상메모리(Virtual Memo
동적 메모리 할당 > 왜 쓰는가? C 프로그램에서 저수준의 mmap과 munmap 함수를 사용해서 생성하고 삭제할 수 있지만, 추가적인 가상 메모리를 런타임에 획득할 필요가 있을 때, 동적 메모리 할당기를 사용하는 것을 좀 더 편리하고 호환성이 좋다. 동적 메
http://csapp.cs.cmu.edu/3e/proxylab.pdfA Web proxy is a program that acts as a middleman between a Web browser and an end server.Proxies are used