资源简介
修改Nachos,完成对应的进程(线程)调度算法。
具体算法有:先来先服务(FCFS)、静态优先级调度(PS)、实时调度(SJF)等。
代码片段和文件信息
/* 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 “\n“ 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(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1020 2002-12-16 18:57 NachOS-4.1\COPYRIGHT
文件 2337 2011-05-14 09:03 NachOS-4.1\.project
文件 11355 2011-05-14 09:03 NachOS-4.1\.cproject
文件 853 2002-12-16 18:57 NachOS-4.1\coff2noff\noff.h
文件 2314 2002-12-16 18:57 NachOS-4.1\coff2noff\coff.h
文件 9608 2003-10-07 22:57 NachOS-4.1\coff2noff\coff2noff.c
文件 1229 2002-12-16 18:57 NachOS-4.1\coff2noff\copyright.h
文件 1187 2003-10-08 00:15 NachOS-4.1\coff2noff\Makefile.in
文件 476 2003-10-08 00:16 NachOS-4.1\coff2noff\configure.ac
文件 528 2003-10-07 23:07 NachOS-4.1\coff2noff\config.h.in
文件 95105 2003-10-07 23:07 NachOS-4.1\coff2noff\configure
文件 6888 2011-04-29 13:59 NachOS-4.1\coff2noff\config.log
文件 12088 2011-04-28 19:17 NachOS-4.1\coff2noff\coff2noff.o
文件 18584 2011-04-29 13:59 NachOS-4.1\coff2noff\config.status
文件 5992 2011-04-28 19:17 NachOS-4.1\coff2noff\coff2noff
文件 1192 2011-04-29 13:59 NachOS-4.1\coff2noff\Makefile
文件 602 2011-04-28 19:17 NachOS-4.1\coff2noff\config.h
文件 2023 2003-10-08 00:23 NachOS-4.1\code\README
文件 2486 2011-05-14 09:16 NachOS-4.1\code\.project
文件 19135 2011-05-14 09:16 NachOS-4.1\code\.cproject
文件 682 2003-10-07 17:36 NachOS-4.1\code\shell\shell.c
文件 7016 2003-10-11 00:06 NachOS-4.1\code\shell\nachos_syscall.c
文件 293 2003-10-09 21:53 NachOS-4.1\code\shell\Makefile.in
文件 1837 2003-10-07 21:58 NachOS-4.1\code\shell\config.h.in
文件 767 2003-10-07 21:59 NachOS-4.1\code\shell\configure.ac
文件 108874 2003-10-08 03:24 NachOS-4.1\code\shell\configure
文件 4760 2003-10-09 21:51 NachOS-4.1\code\shell\nachos_syscall.h
文件 10743 2002-12-16 18:57 NachOS-4.1\code\userprog\addrspace.cc
文件 1697 2002-12-16 18:57 NachOS-4.1\code\userprog\addrspace.h
文件 4341 2002-12-16 18:57 NachOS-4.1\code\userprog\errno.h
............此处省略180个文件信息
相关资源
- 操作系统 进程调度
- NachOS 进程调度算法修改
- NachOS线程调度_基于优先级和Round Rob
- 操作系统Nachos实验---4个全的。。
- nachos Lab4实习报告.pdf
- 采用时间片轮转算法的进程调度程序
- 综合使用作业调度和进程调度模拟作
- 操作系统,nachos实验报告,源码
- 操作系统 nachos实验四
- 操作系统实验 7种进程调度算法的实现
- 北大Nachos文件系统实习报告
- 操作系统进程调度算法实验报告
- Nachos实验代码
- 山东大学操作系统课程设计nachos
- 山东大学操作系统课设nachos实验报告
- 山东大学操作系统课程设计nachos实验
- nachos 3.4线程+文件系统+虚拟内存实习
- 大连理工大学操作系统上机进程调度
- 进程调度的设计与实现
- Nachos调度和虚存的实现文档
- 实现单处理机下的进程调度程序
- 时间片轮转调度算法
- 操作系统 进程调度时间片轮转银行家
- 动态优先数高者进程调度算法
- nachos第一次实验
- 北京化工大学操作系统上机源码八个
- 进程调度 优先权和轮转法
- 进程管理大作业源码电梯调度算法操
- Nachos虚存页面置换算法
- 操作系统实验-模拟进程调度
评论
共有 条评论