操作系统实验三-操作系统实验三进程同步的经典算法

本文目录一览:

操作系统课程实验题目!

class ThreadTest

{

public static void main(String[] args)

{

box b=new box();

Get g=new Get(b);

Put p=new Put(b);

p.start();

g.start();

}

}

class Put extends Thread

{

box b;

Put(box b)

{

this.b=b;

}

public void run()

{

for(int i=1;i10;i++)

{

System.out.println("Put into :"+i);

b.put(i);

}

}

}

class Get extends Thread

{

box b;

Get(box b)

{

this.b=b;

}

public void run()

{

while(true)

{

System.out.println("Get : "+b.get());

}

}

}

class box

{

int[] value=new int[1];

boolean bfull=false;

public synchronized void put(int i)

{

if(!bfull)

{

value[0]=i;

bfull=true;

notify();

}

try

{

wait();

}

catch(Exception e)

{

e.printStackTrace();

}

}

public synchronized int get()

{

if(!bfull)

{

notify();

try

{

wait();

}

catch(Exception e)

{

e.printStackTrace();

}

}

bfull=false;

return value[0];

}

}

操作系统:实验三 进程的死锁与饥饿实验报告

实验三 进程的死锁与饥饿实验报告

一、单项选择题(共5题,每题10分,共50分)

1、采用资源剥夺法可以解除死锁,还可以采用_B___方法解除死锁。

A.执行并行操作 B.撤销进程

C.拒绝分配新资源 D.修改信号量

2、产生死锁的四个必要条件是:互斥、_B___、循环等待、不剥夺。

A. 请求与阻塞 B.请求与保持

C.请求与释放 D.释放与阻塞

3、银行家算法在解决死锁问题中是用于_B___的。

A. 预防死锁 B.避免死锁 C. 检测死锁 D.解除死锁

4、在下列解决死锁的方法中,属于死锁预防策略的是__B__。 A.银行家算法 B.资源有序分配法

C.死锁检测法 D.资源分配图化简法

5、某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是_B___。

A.9 B.10 C.11 D.12

二、填空题(共4题,每题5分,共20分)

1、在有M个进程的系统中出现死锁时,死锁进程的个数K应该满足的条件是_2=k=m___。

2、死锁产生的4个必要条件是:互斥条件、_请求和保持条件___、_不剥夺条件___和_环路等待条件___。

3、产生死锁的根本原因是_可共享资源不足___,另一个基本原因是_进程的推进顺序不当___。

4、银行间算法中,当一个进程提出的资源请求将导致系统从_安全状态___进入_不安全状态___时,系统就拒绝它的资源请求

三、 简答题(共2题,每题15分,共30分) 1、按序分配是预防死锁的一种策略。什么是按序分配?为什么按序分配可以预防死锁?

按序分配是将系统中所有资源按类型进行 线性排队,并赋予不同的编号,规定所有进程对资源的请求必须严格按照资源序号递增的次序提出。 按序分配可破坏产生死锁的四个必要条件中的“循环等待条件”

2、产生死锁的必要条件是什么?解决死锁问题常采用哪几种措施?

必要条件:互斥条件、部分分配条件、剥夺条件、环路条件。

解决死锁问题采用的措施:

(1)撤销进程法:采用撤销进程法时,可用两种形式来撤销进程。一种是撤销所有卷入死锁的进程。另一种是一次撤销一个进程直到死锁消失。

求课程实验报告

程序给你2个, 分别是 时间片轮转调度算法模拟程序和 先来先服务模拟程序, 实验报告你还是要自己写的~

//时间片轮转调度算法模拟程序

#includestdio.h

#includestring.h

#includeiostream.h

typedef struct node

{

char name[10];

int prio;

int round;

int cputime;

int needtime;

int count;

char state;

struct node*next;

}PCB;

PCB*finish,*ready,*tail,*run;

int N;

void firstin()

{

run=ready;

run-state='R';

ready=ready-next;

}

void prt1()

{

cout"name cputtime needtime round stat"endl;

}

void prt2(PCB*q)

{

coutq-name" "q-cputime" "q-needtime" "q-round" "q-stateendl;

}

void prt()

{

PCB*p;

prt1();

if(run!=NULL)

prt2(run);

p=ready;

while(p!=NULL)

{

prt2(p);

p=p-next;

}

p=finish;

while(p!=NULL)

{

prt2(p);

p=p-next;

}

getchar();

}

void insert(PCB*q)

{

PCB*p1,*s,*r;

s=q;

p1=ready;

r=p1;

while(p1!=NULL)

if(p1-round=s-round)

{

r=p1;

p1=p1-next;

}

if(r!=p1)

{

r-next=s;

s-next=p1;

}

else

{

s-next=p1;

ready=s;

}

}

void create()

{

PCB*p;

int i,time;

char na[10];

ready=NULL;

finish=NULL;

run=NULL;

cout"请输入进程名及其需要运行的时间:"endl;

for(i=1;i=N;i++)

{

p=new PCB;

cinna;

cintime;

strcpy(p-name,na);

p-cputime=0;

p-needtime=time;

p-state='W';

p-round=0;

if(ready!=NULL)

insert(p);

else

{

p-next=ready;

ready=p;

}

cout"输入进程名及其需要运行的时间:"endl;

}

prt();

run=ready;

ready=ready-next;

run-state='R';

}

void timeslicecycle()

{

while(run!=NULL)

{

run-cputime=run-cputime+8;

run-needtime=run-needtime-8;

run-round=run-round+8;

if(run-needtime=0)

{

run-next=finish;

finish=run;

run-state='F';

run=NULL;

if(ready!=NULL)

firstin();

}

else

{

run-state='W';

insert(run);

firstin();

}

prt();

}

}

void main()

{

cout"输入进程个数:";

cinN;

create();

timeslicecycle();

}

操作系统实验

1、 查看进程管理器,说明按照名字序号前5个进程的主要用途和功能。每个人机器运行的程序不一样,怎么给你解答??????

2、 设置默认打印机为Microsoft Office Document Image Writer,并设置优先级别为2级: 不会太高难了,用了10年电脑,没听说打印机还可以设置优先级别.

3、 修改windows启动选项,将其中的前三个自动启动的选项去掉。 :开始 → 运行 → 输入msconfig,到启动页,去掉三个程序的挑,确定,重启.??你要是不足三个咋办?????

4、 修改windows服务选项,将windows的远程用户修改注册表的服务设置成禁止。 :打开控制面板 → 管理工具 → 服务 → 找到"Remote Registry",双击,启动类型设置为禁用.

5、 修改windows的磁盘管理并设定配额选项。 :磁盘格式必须是NTFS才行,右键点击盘符,就有配额.

6、 更改windows的脚本程序默认空间为root\apsnet。;机器没有安装脚本解释器,谁安了给你答案吧。

7、 修改windows的虚拟内存交换空间为1024M。 :右键我的电脑 → 属性 → 高级 → 性能的设置 → 高级 → 更改 → 大小设置都为1024M。

8、 修改windows使得windows启动时,显示操作系统列表时间为5秒,并写出启动文件的具体内容。 :右键我的电脑 → 属性 → 高级 → 启动和故障恢复的设置 → 显示列表时间 设为5, → 点击编辑 → 列出具体内容,一般是:

[boot loader]

timeout=3

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

9、 查看windows本地安全策略,并修改为定期强制修改密码。写出本地安全策略的审核的内容。 :开始 → 运行 → 输入gpedit.msc → 计算机设置 → Windows设置 → 安全设置 → 账户策略 → 密码策略 → 密码最长存留期设置为需要的天数即可。

10、 获得此计算机网卡的网络配置及mac地址。 :开始 → 运行 → 输入cmd回车 → 输入ipconfig /all回车即是。

11、 在D盘新建一个文件夹,以自己的拼音缩写命名,并利用命令将其映射为I盘。 :例如为aaa,命令:subst I: c:\aaa。即将c:\aaa映射为I盘。

12、 查看系统所有组件配置。包括驱动程序,装载的所有程序,windows组件,硬件组件的IRQ等。 :Windows徽标+break快捷键 → 设备管理器 → 其中即是。

13、 查看windows的版本及注册信息。 :开始 → 运行 → 输入winver回车

14、 利用windows自带的聊天工具,进行局域网内的聊天,并写出详细步骤。 首先启动服务中的Messager服务,Sp2以后版本默认为禁止的,将其设为自动,

然后要发消息就开始 → 运行 → 输入net send 对方IP地址 信息内容。回车即可

15、 利用命令查看windows进程中每个进程所提供的服务。

命令:tasklist /SVC

你这10分真不好赚阿!@#@!%#×!!!!学习可不要这么懒哦


原文链接:http://527256.com/13132.html

相关文章

访客
访客
发布于 2022-07-10 08:37:36  回复
属于死锁预防策略的是__B__。 A.银行家算法 B.资源有序分配法C.死锁检测法 D.资源分配图化简法5、某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是_B___。A.9 B.10 C.11 D.12二、填空题(共4题,每题5分,共
访客
访客
发布于 2022-07-10 00:38:35  回复
不一样,怎么给你解答?????? 2、 设置默认打印机为Microsoft Office Document Image Writer,并设置优先级别为2级: 不会太高难了,用了10年电脑,没听说打印机还可以设置优先级别.
访客
访客
发布于 2022-07-09 21:14:20  回复
本文目录一览:1、操作系统课程实验题目!2、操作系统:实验三 进程的死锁与饥饿实验报告3、求课程实验报告4、操作系统实验操作系统课程实验题目!class ThreadTe
访客
访客
发布于 2022-07-10 07:38:56  回复
; if(ready!=NULL) insert(p); else { p-next=ready; ready=p; } cout"输入进程名及其需要运行的时间:"en

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

返回顶部