Giter Club home page Giter Club logo

nctu_os_2015_hw3's Introduction

NCTU OS 2015

Join the chat at https://gitter.im/u1240976/NCTU_OS_2015_HW3

HW3: Virtual Memory Experiment

This is Homework 3 for Introduction to Operating Systems, Fall 2015. This homework assignment will familiarize you with the concept of virtual memory through a series of experiments on the Linux memory subsystem.

Please read the tutorials and then carry the prescribed experiment steps. You will have to submit a report for the homework. The detail spec is in spec.rst.

Contact Us

If you have any question about this homework, feel free to e-mail the TA, or knock the door of EC618.

Don't forget to attach your name and student ID in the e-mail, and name the subject as [OS] HW3 Question (<STUDENT ID>).

nctu_os_2015_hw3's People

Contributors

cwshu avatar hankwu avatar gitter-badger avatar

Stargazers

Peter avatar Michael Hsieh avatar Chiu-Hsiang Hsu avatar DavidGuo avatar YT Nien avatar Tobb Huang avatar Kuan-Yin Chen avatar

Watchers

James Cloos avatar  avatar

nctu_os_2015_hw3's Issues

Section1/sorting_numbers.c won't wait

In line 52 of Section1/sorting_numbers.c
I think the getchar() is meant to stop the program from exiting immediately,
but it will eat the "\n" of the user entering the numbers to sort.
adding another getchar() will solve the issue.

physical address should be masked by processor's physical address width instead of using pte_val() directly

physical address should be mask by processor's physical address width instead of using pte_val() directly (e.g. paddr &= phyaddr_mask)
(ref: Intel Dev 3A ch4.5 IA-32E PAGING:
Table 4-12. Use of CR3 with IA-32e Paging and CR4.PCIDE = 0)

Currently, the HW/Question is supposed that physical address bits is same as virtual address bits, 48 bits. We can discuss whether it is proper in the future.
Below is the correct data in x86_64:
MAXPHYADDR = 52 bits
Get physical address width of this x86_64 processor from cpuid instruction: cpuid(eax = 0x80000008)[7:0] (ref: Intel Dev 3A ch4.1.4)

For more infomation,

  1. for how to use cpuid in kernel, give a reference:
  2. Intel Dev 3A => Intel x86_64 Dev Manual Volume 3A: http://www.intel.com/Assets/en_US/PDF/manual/253668.pdf
  3. how to get cpuid value from your linux pc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.