운영체제
Windows OS - 가상 메모리 주소, 물리 메모리 주소
Windows OS - 가상 메모리 주소, 물리 메모리 주소
2022.02.25가상주소와 물리주소 가상주소는 말 그대로 가상의 주소이다. 물리주소는 실제 RAM에 위치한 데이터의 주소이다. 이건 일반적으로 구현하는 App에서는 알 수 없다. App에서 사용하는 모든 주소는 가상주소 이다. 현재 사용중인 PC의 메인메모리(RAM) 용량을 보자. 내 경우엔 16GB 이다. 물리적인 주소는 0x0 ~ 0x 000000FFFFFFFFFF 까지 가능하다. 그런데 실제로 프로그래밍을 해보면 나의 PC에 꽂힌, RAM이 표현할 수 있는 물리적인 영역을 아득히 초과한 번지수가 나오는 경우가 분명히 있다. App에서 사용하는 주소값은 가상 메모리주소이기 때문이다. 메모리 사용시에도 역시 OS와 하드웨어의 통제를 받고 있다. 이 가상 메모리 주소 와 실제 물리적인 주소와의 변환을 MMU가 수행한다...
Windows OS - 스레드(Thread) 2편
Windows OS - 스레드(Thread) 2편
2022.02.01스레드가 마지막으로 사용했던 레지스터 정보인 Context를 로드한다. 할당받은 시간을 모두 사용하고 다시 메모리에 Context를 저장시킨다. (상술 했듯이 커널메모리 안의 스레드 커널 오브젝트 안에 Context가 저장된다.) 이게 반복되면 시스템에 돌고있는 스레드들이 모두 실행되는 것이다. 윈도우즈 OS는 실시간 OS가 아닌 선점형 멀티스레드 기반 OS이다. OS에 의해 물흐르듯 일어나는 스케쥴링 작업을 App을 작성하는 프로그래머의 마음대로 변경하거나 교체 하는 것에는 한계가 있다. App에서의 스레드 통제는 어디까지나 OS의 판단하에서 적합한 기준내에서 실행된다. 스레드의 정지와 재개 스레드의 정지란 해당 스레드가 CPU시간을 할당받지 않도록 설정하는 것이다. 스레드 커널 오브젝트 내에는 정지카..