본문 바로가기

컴퓨터시스템

Project3. Virtual Memory (PintOS) Project3. Virtual Memory 1. Memory Management 늘 그래왔듯, 가장 기초 즉 이 project3가 흘러가는 코드의 시작을 공부한다. Project2까지는 load를 어떻게 해왔는지 생각해보자. 우리는 process_exec -> load -> load_segment -> setup_stack 등의 방식으로 메모리를 적재했다. (load_segment, setup_stack은 주의깊게 보지 못했을 수 있다.) 그러나 프로그램 전체를 메모리에 load 하는 것은 매우 비효율적이다. 그래서 우리는 lazy_load를 사용한다. 지금 당장 사용해야할 부분만 load하고, 사용하지 않는 부분은 표시만 해둔다고 생각하면 될 것 같다. 이렇게 하면 당장 큰 프로그램을 모두 load하.. 더보기
[컴퓨터시스템] 1.8 ~ 1.10 1.8 시스템은 네트워크를 사용하여 다른 시스템과 통신한다. 시스템을 하드웨어와 소프트웨어의 분리된 집합체로 취급했다. 최신 시스템들은 네트워크에 의해 다른 시스템과 종종 연결된다. 이런 관점에서, 네트워크는 또 다른 입출력장치로 볼 수 있다. telnet 응용을 사용하여 hello 프로그램을 다른 컴퓨터에서 실행하는 법: 'hello'를 telnet 클라이언트에 입력 -> telnet 서버 -> 원격 쉘 프로그램 -> hello 프로그램 실행 및 출력을 telnet 서버에 전달 -> 네트워크를 거쳐 telnet 클라이언트로 출력 전달 -> 로컬 터미널에 표시 1.9 중요한 주제들 시스템이라는 것은 단지 하드웨어 그 이상의 것이다. 응용프로그램의 실행이라는 궁극의 목적을 달설하기 위해, 하드웨어와 시스템.. 더보기