⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addrspace.h

📁 Nachos是个教学用的小型操作系统
💻 H
字号:
// addrspace.h //	Data structures to keep track of executing user programs //	(address spaces).////	For now, we don't keep any information about address spaces.//	The user level CPU state is saved and restored in the thread//	executing the user program (see thread.h).//// Copyright (c) 1992-1996 The Regents of the University of California.// All rights reserved.  See copyright.h for copyright notice and limitation // of liability and disclaimer of warranty provisions.#ifndef ADDRSPACE_H#define ADDRSPACE_H#include "copyright.h"#include "filesys.h"#define UserStackSize		1024 	// increase this as necessary!class AddrSpace {  public:    AddrSpace();			// Create an address space.    ~AddrSpace();			// De-allocate an address space    bool Load(char *fileName);		// Load a program into addr space from                                        // a file					// return false if not found    void Execute();             	// Run a program					// assumes the program has already                                        // been loaded    void SaveState();			// Save/restore address space-specific    void RestoreState();		// info on a context switch     // Translate virtual address _vaddr_    // to physical address _paddr_. _mode_    // is 0 for Read, 1 for Write.    ExceptionType Translate(unsigned int vaddr, unsigned int *paddr, int mode);  private:    TranslationEntry *pageTable;	// Assume linear page table translation					// for now!    unsigned int numPages;		// Number of pages in the virtual 					// address space    void InitRegisters();		// Initialize user-level CPU registers,					// before jumping to user code};#endif // ADDRSPACE_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -