操作系统大作业

发布 2020-02-28 15:08:28 阅读 3722

班级:姓名:

学号:实验二:进程压力测试。

1.实验要求。

1)用循环的办法产生所要求的进程(线程),循环的退出条件是不能产生进程时,即createprocess()返回0时,统计产生的进程(线程)数目;

2)子进程的运行方式分别考虑:子进程挂起或睡眠,挂起操作在父进程通过create_suspended选项完成;子进程死循环,即父进程产生子进程后子进程立即执行,并且执行一个死循环。

3)在进程被赋予不同的优先级情况下的结果。

/ proccreate项目。

# include <>

# include

# include <>

/ 创建传递过来的进程的克隆过程并赋于其id值。

void startclone(int ncloneid)

// 提取用于当前可执行文件的文件名。

tchar szfilename[max_path] ;

:: getmodulefilename(null, szfilename, max_path) ;

// 格式化用于子进程的命令行并通知其exe文件名和克隆id

tchar szcmdline[max_path] ;

:: sprintf(szcmdline, "s\" d", szfilename, ncloneid) ;

// 用于子进程的startupinfo结构。

startupinfo si;

:: zeromemory(reinterpret_cast (&si) ,sizeof(si) )

= sizeof(si必须是本结构的大小。

// 返回的用于子进程的进程信息。

process_information pi;

// 利用同样的可执行文件和命令行创建进程,并赋于其子进程的性质。

bool bcreateok = createprocess(

szfilename产生这个exe的应用程序的名称。

szcmdline告诉其行为像一个子进程的标志。

null缺省的进程安全性。

null缺省的线程安全性。

false不继承句柄。

create_new_console使用新的控制台。

null新的环境。

null当前目录。

&si启动信息。

&pi返回的进程信息。

// 对子进程释放引用。

if (bcreateok)

int main(int argc, char* ar**

// 确定进程在列表中的位置。

int nclone(0) ;

if (argc > 1)

// 显示进程位置。

std ::cout <

<< clone id: "nclone

<< std ::endl;

// 检查是否有创建子进程的需要。

const int c_nclonemax = 25;

if (nclone < c_nclonemax)

// 在终止之前暂停一下 (l/2秒)

:: sleep(10000) ;

return 0;

结果分析:利用同样的可执行文件和命令行创建子进程,并赋于其子进程的性质,createprocess()返回0时,能得到进程个数为25个,如图,在进程产生过程中cup使用率高。

实验三:使用互斥对象实现线程同步。

两个线程对同一个变量进行访问,其中一个线程对变量做加1操作,一个线程对其做减1操作。改变其数值后将该数值写入输出流中。

分析:不作同步操作和采用同步操作将分别出现什么现象。

/ mutex项目。

# include <>

# include

/ 利用互斥体来保护同时访问的共享资源。

class ccountupdown

public:

创建者创建两个线程来访问共享值。

ccountupdown(int naccesses)

解除程序释放对对象的引用。

virtual ~ccountupdown()

简单的等待方法,在两个线程终止之前可暂停主调者。

virtual void waitforcompletion()

protected:

改变共享资源的简单的方法。

virtual void docount(int nstep)

static dword winapi incthreadproc(lpvoid lpparam)

static dword winapi decthreadproc(lpvoid lpparam)

将参数解释为 'this' 指针。

ccountupdown* pthis =

reinterpret_cast (lpparam) ;

操作系统大作业a

一 填空 14分 1 在设备管理中,为了克服独占设备速度较慢 降低设备资源利用率的缺点,引入了虚拟分配技术即用共享设备模拟独占设备。2 常用的内存管理方法有和。3 动态存储分配时,要靠硬件地址变换机构实现重定位。4 在存储管理中常用虚拟存储器方式来摆脱主存容量的限制。5 在页式管理中,页式虚地址与内...

操作系统大作业a

一 填空 14分 1 在设备管理中,为了克服独占设备速度较慢 降低设备资源利用率的缺点,引入了即用共享设备模拟独占设备。2 常用的内存管理方法有和。3 动态存储分配时,要靠硬件地址变换机构实现。4 在存储管理中常用方式来摆脱主存容量的限制。5 在页式管理中,页式虚地址与内存物理地址的映射是由和完成的...

操作系统大作业

学号 091401223 姓名 高玉林 本次上机作业使用的软件是microsoft visual studio community 2017 rc,版本 15.0.26020.0,使用的语言是c 第一题 编写求f x 值的程序。f x f1 x f2 x f3 x f1 x 10 x f2 x 10...