Computer Science/Operating System 새로비 2017. 5. 15. 12:25
Stack Frame이란 함수의 호출 정보를 저장하는 자료구조이며, 이 자료구조는 스택으로 되어 있습니다. 이러한 스택 프레임에는 함수로 전달되는 인수와, 함수 실행 모두 마치면 돌아올 복귀 주소와 지역 변수 등의 정보가 들어갑니다. 빠르고 손쉽게 지역 변수 혹은 인수 등에 접근하기 위해 레지스터를 통하여 스택 프레임을 참조할 수 있습니다. 실행 중인 함수는 자신 만의 스택 영역을 사용하게 되고, Stack Frame을 열게되고, 종료할 시 Stack Frame을 닫게 됩니다. 위의 그림은 Stack Frame의 구조입니다. 스택 프레임은 Stack Pointer, Frame Pointer 등의 요소로 이루어져 있으며 각각 다음과 같은 기능을 합니다. 1. Frame Pointer : 함수의 Stack ..
더 읽기
Computer Science/Operating System 새로비 2017. 5. 15. 00:00
가상메모리는 RAM을 관리하는 방법의 하나로, 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 실제 메모리 주소와 매핑하여 제공하는 관리 기법을 말합니다. 이러한 기법을 통해 프로세스는 실제 주기억장치보다 더 큰 메모리 영역을 제공받게 되죠. 가상적으로 주어진 주소를 가상 주소 또는 논리 주소라고 하며, 실제 메모리 상에서 유효한 주소를 물리 주소라고 합니다. 이러한 가상 주소 공간은 메모리 관리 장치(MMU)에 의해서 물리 주소로 변환되죠. 이러한 기법이 좋은 이유는 크게 두 가지 입니다. 1. 프로세스가 가상화를 통해 실제 메모리 크기보다 더 큰 메모리를 할당받을 수 있게끔 되어, 메모리 관리가 용이해짐.2. 실제 주소공간을 의식할 필요 없이 프로그램을 쉽게 설계할 수 있음.
Computer Science/Operating System 새로비 2017. 5. 14. 19:33
Memory Mapped I/O는 CPU가 입출력 장치를 엑세스할 때, 입출력과 메모리의 주소 공간을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식입니다. 위 그림과 같이 Memory Mapped I/O는 메모리와 I/O가 하나의 연속된 어드레스 영역에 할당되는 데요, I/O가 차지하는 만큼 메모리 용량은 감소합니다. (당연하겠죠). 또한 CPU에게는 메모리와 입출력 장치가 동일한 외부기기로 간주되므로 이들을 엑세스 하기 위하여 같은 신호를 사용합니다. 또한 소프트웨어적으로도 메모리에 대한 엑세스나 I/O에 대한 입출력이 동일한 것으로 간주됩니다. 참고 자료 : http://shinluckyarchive.tistory.com/237
Computer Science/Operating System 새로비 2017. 5. 13. 23:54
프로세스는 다음과 같은 구조를 가지는 데, 아래와 같이 크게 5대의 영역으로 나뉩니다. 위의 메모리 영역은 두 가지로 분류할 수 있는 데 컴파일 시 크기가 고정되는 code, data, bss 영역과 실행시 메모리가 할당되었다가 반납되는 heap, stack 영역으로 나눌 수 있습니다. 1. 코드 영역 : 실행 파일을 구성하는 명령어들이 적재되는 메모리 영역으로 함수, 제어문, 상수 등이 여기에 지정됩니다.2. 데이터 영역 & BSS : 전역변수와 static변수가 지정되는 영역입니다. 초기화가 안 된 전역변수는 BSS 나머지는 DATA영역에 저장됩니다.3. HEAP 영역 : 프로그래밍 하시는 분들께는 친숙한 heap영역입니다. 실행 시, 동적으로 메모리를 할당할 수 있는 영역이죠.4. STACK : 지..