본문 바로가기

컴퓨터시스템

(3)
Chap 6. 프로그램 실행 [ 프로그램의 실행 ] 시스템 콜을 통해 커널 함수를 호출한다. → 그러면 커널 모드가 된다. 유저모드와 커널 모드가 반복된다 os는 block 단위로 읽어들인다. (timer 시간) [ 저장장치 계층구조 ] primary (Executable) [Registers] CPU안에 있음 공간은 적지만 빠른 속도로 처리를 한다. [1 Cache Memory] ISA에 포함되지 않을 수도 있고 포함될 수도 있다 메모리에서 레지스터로 올리는데 많은 내용을 올릴 때 시간이 많이 걸릴 것이다. 하지만 캐시에 저장했다가 다시 사용하고 싶으면 메인 메모리에서 레지스터로 바로 가는 것이 아니라 캐시에 저장된 값을 바로 사용하는 것이다. → 속도가 더 빨라진다. 메인메모리 보다는 빠르고 레지스터보다는 느리다. 버퍼같은 중간..
Chap 5. 컴퓨터 시스템 구조 위의 그림을 바탕으로 자세하게 설명할 수 있다. -cpu의 작업 공간이 메모리이기 때문에 cpu는 매 클럭 사이클마다 메모리에서 기계어를 하나씩 읽어서 실행을 하게 된다. -맨오른쪽에 4가지 세로로 그림이 나열되어 있다. 이들은 IO 디바이스이며 input을 담당하는 키보드, output을 담당하는 모니터, 프린터가 있다. 맨 위에 있는 것은 하드디스크인데 이는 보조 기억 장치로 볼 수 있고 IO device라고 볼 수도 있다. 왜냐하면 디스크에 있는 메모리를 읽어서 메모리로 읽어들이기도 하고(input device), 동시에 처리 결과를 디스크에 있는 파일 시스템에 저장을 하는 역할(output device)을 하기 때문이다. -device controller는 각각의 IO디바이스들은 그 디바이스를 전..
Chap 3 - 2. 부분 컴파일 부분 컴파일이란? = 여러 개의 파일들을 각각 컴파일하고 링커를 통해 합쳐져서 실행 파일로 만드는데, 여러 개의 파일들을 각각 컴파일하는 것을 부분 컴파일이라고 한다. - 부분 컴파일을 하게 되면 symbol table이 만들어지게 된다. 심볼 테이블은 각각의 변수들은 어떤 것을 사용하는지에 대해 정리되어 있다. 그것들을 이용해서 컴파일을 한 오브젝트 파일들 몇개를 서로 링크하여 하나의 실행 파일로 만드는 것이다. -변수나 함수는 거의 비슷한 개념이다. ⇒ symbol이라고 함 (변수나 함수 등의 이름을 말한다.) int a = 1; // 변수 선언 void func(int a) // 함수 선언 { a++; } -변수 선언을 할 때는 변수에 해당되는 메모리의 주소를 가리키고 있는 것이 'a' 라고 할 수..