synchdisk.h

来自「nachos test nachos 有关实验」· C头文件 代码 · 共 54 行

H
54
字号
// synchdisk.h // 	Data structures to export a synchronous interface to the raw //	disk device.//// Copyright (c) 1992-1993 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.#include "copyright.h"#ifndef SYNCHDISK_H#define SYNCHDISK_H#include "disk.h"#include "synch.h"// The following class defines a "synchronous" disk abstraction.// As with other I/O devices, the raw physical disk is an asynchronous device --// requests to read or write portions of the disk return immediately,// and an interrupt occurs later to signal that the operation completed.// (Also, the physical characteristics of the disk device assume that// only one operation can be requested at a time).//// This class provides the abstraction that for any individual thread// making a request, it waits around until the operation finishes before// returning.class SynchDisk {  public:    SynchDisk(char* name);    		// Initialize a synchronous disk,					// by initializing the raw Disk.    ~SynchDisk();			// De-allocate the synch disk data        void ReadSector(int sectorNumber, char* data);    					// Read/write a disk sector, returning    					// only once the data is actually read 					// or written.  These call    					// Disk::ReadRequest/WriteRequest and					// then wait until the request is done.    void WriteSector(int sectorNumber, char* data);        void RequestDone();			// Called by the disk device interrupt					// handler, to signal that the					// current disk operation is complete.  private:    Disk *disk;		  		// Raw disk device    Semaphore *semaphore; 		// To synchronize requesting thread 					// with the interrupt handler    Lock *lock;		  		// Only one read/write request					// can be sent to the disk at a time};#endif // SYNCHDISK_H

⌨️ 快捷键说明

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