NachOS 4.1版本 进程调度算法进行了修改 修改为基于优先级的时间片轮转调度算法
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1169856 2010-05-08 02:24 5070369042杜星_NachOS实验报告一.docx
文件 187752 2002-12-16 18:57 NachOS-4.1c++examplec++.ps
文件 66890 2002-12-16 18:57 NachOS-4.1c++examplec++.tex
文件 1224 2002-12-16 18:57 NachOS-4.1c++examplecopyright.h
文件 6276 2002-12-16 18:57 NachOS-4.1c++exampleinheritstack.cc
文件 3026 2002-12-16 18:57 NachOS-4.1c++exampleinheritstack.h
文件 3604 2002-12-16 18:57 NachOS-4.1c++examplelist.cc
文件 919 2002-12-16 18:57 NachOS-4.1c++examplelist.h
文件 706 2002-12-16 18:57 NachOS-4.1c++exampleMakefile
文件 3569 2002-12-16 18:57 NachOS-4.1c++examplestack.cc
文件 1399 2002-12-16 18:57 NachOS-4.1c++examplestack.h
文件 3921 2002-12-16 18:57 NachOS-4.1c++example emplatestack.cc
文件 1252 2002-12-16 18:57 NachOS-4.1c++example emplatestack.h
文件 12006 2003-10-11 00:40 NachOS-4.1codeuild.cygwinMakefile
文件 31309 2002-12-16 18:57 NachOS-4.1codeuild.cygwinMakefile.dep
文件 61128 2010-05-07 22:53 NachOS-4.1codeuild.linuxaddrspace.o
文件 56480 2010-05-07 22:52 NachOS-4.1codeuild.linuxalarm.o
文件 45920 2010-05-07 22:52 NachOS-4.1codeuild.linuxitmap.o
文件 62512 2010-05-07 22:52 NachOS-4.1codeuild.linuxconsole.o
文件 38552 2010-05-07 22:52 NachOS-4.1codeuild.linuxdebug.o
文件 48516 2010-05-07 22:53 NachOS-4.1codeuild.linuxdirectory.o
文件 65512 2010-05-07 22:52 NachOS-4.1codeuild.linuxdisk.o
文件 131076 2010-05-07 22:53 NachOS-4.1codeuild.linuxDISK_0
文件 51948 2010-05-07 22:53 NachOS-4.1codeuild.linuxexception.o
文件 54500 2010-05-07 22:53 NachOS-4.1codeuild.linuxfilehdr.o
文件 848 2010-05-07 22:53 NachOS-4.1codeuild.linuxfilesys.o
文件 81604 2010-05-07 22:52 NachOS-4.1codeuild.linuxinterrupt.o
文件 62544 2010-05-07 22:52 NachOS-4.1codeuild.linuxkernel.o
文件 103016 2010-05-07 22:52 NachOS-4.1codeuild.linuxlibtest.o
文件 57688 2010-05-07 22:52 NachOS-4.1codeuild.linuxmachine.o
............此处省略166个文件信息
/* syscalls.c
* Nachos system call interface. These are the enveloped Nachos kernel
* operations that can be invoked from user programs.
* Each NachOS system call is translated to an apropriate LIBC call.
* Hopefully this works on MacOS X *nix and Windows
*/
#include “nachos_syscall.h“
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#ifdef HAVE_CONFIG_H
#include “config.h“
#endif
#define SHELL “/bin/sh“
/*
* The system call interface. These are the operations the Nachos
* kernel needs to support to be able to run user programs.
*/
/* Stop Nachos and print out performance stats */
void Halt()
{
Exit(0);
}
/*
* Add the two operants and return the result
*/
int Add(int op1 int op2)
{
return op1 + op2;
}
/* This user program is done (status = 0 means exited normally). */
void Exit(int status)
{
exit(status);
}
/* Address space control operations: Exit Exec Execv and Join */
/* Run the specified executable with no args */
/* This can be implemented as a call to ExecV.
*/
SpaceId Exec(char* exec_name)
{
pid_t child;
child = vfork();
if(child == 0)
{
execl (SHELL SHELL “-c“ exec_name NULL);
_exit (EXIT_FAILURE);
}
else if(child < 0)
return EPERM;
return (SpaceId) child;
}
/*
* Run the executable stored in the Nachos file “argv[0]“ with
* parameters stored in argv[1..argc-1] and return the
* address space identifier
* For this the incoming string has to be seperated by replacing “ “
* with “
“ and building the appropriate pointer structure argv.
*/
SpaceId ExecV(int argc char* argv[])
{
pid_t child;
child = vfork();
if(child == 0){
execl (SHELL SHELL “-c“ argv NULL);
_exit (EXIT_FAILURE);
}
else if(child < 0)
return EPERM;
return (SpaceId) child;
}
/* Only return once the user program “id“ has finished.
* Return the exit status.
*/
int Join(SpaceId id)
{
return waitpid((pid_t) id (int*) 0 0);
}
/* File system operations: Create Remove Open Read Write Close
* These functions are patterned after UNIX -- files represent
* both files *and* hardware I/O devices.
*
* Note that the Nachos file system has a stub implementation which
* can be used to support these system calls if the regular Nachos
* file system has not been implemented.
*/
/* when an address space starts up it has two open files representing
* keyboard input and display output (in UNIX terms stdin and stdout).
* Read and Write can be used directly on these without first opening
* the console device.
*/
/* Create a Nachos file with name “name“ */
/* Note: Create does not open the file. */
/* Return 1 on success negative error code on failure */
int Create(char *name)
{
int fd;
fd=open(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1169856 2010-05-08 02:24 5070369042杜星_NachOS实验报告一.docx
文件 187752 2002-12-16 18:57 NachOS-4.1c++examplec++.ps
文件 66890 2002-12-16 18:57 NachOS-4.1c++examplec++.tex
文件 1224 2002-12-16 18:57 NachOS-4.1c++examplecopyright.h
文件 6276 2002-12-16 18:57 NachOS-4.1c++exampleinheritstack.cc
文件 3026 2002-12-16 18:57 NachOS-4.1c++exampleinheritstack.h
文件 3604 2002-12-16 18:57 NachOS-4.1c++examplelist.cc
文件 919 2002-12-16 18:57 NachOS-4.1c++examplelist.h
文件 706 2002-12-16 18:57 NachOS-4.1c++exampleMakefile
文件 3569 2002-12-16 18:57 NachOS-4.1c++examplestack.cc
文件 1399 2002-12-16 18:57 NachOS-4.1c++examplestack.h
文件 3921 2002-12-16 18:57 NachOS-4.1c++example emplatestack.cc
文件 1252 2002-12-16 18:57 NachOS-4.1c++example emplatestack.h
文件 12006 2003-10-11 00:40 NachOS-4.1codeuild.cygwinMakefile
文件 31309 2002-12-16 18:57 NachOS-4.1codeuild.cygwinMakefile.dep
文件 61128 2010-05-07 22:53 NachOS-4.1codeuild.linuxaddrspace.o
文件 56480 2010-05-07 22:52 NachOS-4.1codeuild.linuxalarm.o
文件 45920 2010-05-07 22:52 NachOS-4.1codeuild.linuxitmap.o
文件 62512 2010-05-07 22:52 NachOS-4.1codeuild.linuxconsole.o
文件 38552 2010-05-07 22:52 NachOS-4.1codeuild.linuxdebug.o
文件 48516 2010-05-07 22:53 NachOS-4.1codeuild.linuxdirectory.o
文件 65512 2010-05-07 22:52 NachOS-4.1codeuild.linuxdisk.o
文件 131076 2010-05-07 22:53 NachOS-4.1codeuild.linuxDISK_0
文件 51948 2010-05-07 22:53 NachOS-4.1codeuild.linuxexception.o
文件 54500 2010-05-07 22:53 NachOS-4.1codeuild.linuxfilehdr.o
文件 848 2010-05-07 22:53 NachOS-4.1codeuild.linuxfilesys.o
文件 81604 2010-05-07 22:52 NachOS-4.1codeuild.linuxinterrupt.o
文件 62544 2010-05-07 22:52 NachOS-4.1codeuild.linuxkernel.o
文件 103016 2010-05-07 22:52 NachOS-4.1codeuild.linuxlibtest.o
文件 57688 2010-05-07 22:52 NachOS-4.1codeuild.linuxmachine.o
............此处省略166个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)