篇一:实验四、同步机构
实验四、同步机构
一、实习内容
模拟实现用同步机构避免发生进程执行时可能出现的与时间有关的错误。
二、实习目的
进程是程序在一个数据集合上运行的过程,进程是并发执行的,也即系统中的多个进程轮流地占用处理器运行。
我们把若干个进程都能进行访问和修改的那些变量称为公共变量。由于进程是并发地执行的,所以,如果对进程访问公共变量不加限制,那么就会产生“与时间有关”的错误,即进程执行后所得到的结果与访问公共变量的时间有关。为了防止这类错误,系统必须要用同步机构来控制进程对公共变量的访问。一般说,同步机构是由若干条原语——同步原语——所组成。本实习要求学生模拟PV操作同步机构的实现,模拟进程的并发执行,了解进程并发执行时同步机构的作用。
三、实习题目
模拟PV操作同步机构,且用PV操作解决生产者——消费者问题。
[提示]:
(1) PV操作同步机构,由P操作原语和V操作原语组成,它们的定义如下:
P操作原语P (s):将信号量s减去1,若结果小于0,则执行原语的进程被置成等待信号量s的状态。
V操作原语V (s):将信号量s加1,若结果不大于0,则释放一个等待信号量s的进程。 这两条原语是如下的两个过程:
procedure p (var s: semaphore);
begin s: = s-1;
if s<0 then W (s)
end {p}
procedure v (var s: semaphore);
egin s: = s+1;
if s?0 then R (s)
end {v}
其中W(s)表示将调用过程的进程置为等待信号量s的状态;R(s)表示释放一个等待信号量s的进程。
在系统初始化时应把semaphore定义为某个类型,为简单起见,在模拟实习中可把上述的semaphore直接改成integer。
(2) 生产者——消费者问题。
假定有一个生产者和一个消费者,生产者每次生产一件产品,并把生产的产品存入共享缓冲器以供消费者取走使用。消费者每次从缓冲器内取出一件产品去消费。禁止生产者将产品放入已满的缓冲器内,禁止消费者从空缓冲器内以产品。假定缓冲器内可同时存放10件产品。那么,用PV操作来实现生产者和消费者之间的同步,生产者和消费者两个进程的程序如下:
B: array [0..9] of products;
s1, s2; semaphore;
s1: =10, s2: =0;
IN, out: integer;
IN: =0; out: =0;
cobegin
procedure producer;
c: products;
begin
L1:
Produce (c);
P (s1);
B[IN]: =C;
IN: =(IN+1)mod 10;
V (s2);
goto L1
end;
procedure consumer;
x: products;
begin
L2: p (s2);
x: =B[out];
out: =(out+1) mod10;
v (s1);
consume (x);
goto L2
end;
coend.
其中的semaphore和products是预先定义的两个类型,在模拟实现中semaphore用integer代替,products可用integer或char等代替。
(3) 进程控制块PCB。
为了记录进程执行时的情况,以及进程让出处理器后的状态,断点等信息,每个进程都有一个进程控制块PCB。在模拟实习中,假设进程控制块的结构如图12-1。其中进程的状态有:运行态、就绪态、等待态和完成态。当进程处于等待态时,在进程控制块PCB中要说明进程等待原因(在模拟实习中进程等待原因是为等待信号量s1或s2);当进程处于等待态或就绪态时,PCB中保留了断点信息,一旦进程再度占有处理器则就从断点位置继续运行;当进程处于完成状态,表示进程执行结束。
图
(4) 处理器的模拟。
计算机硬件提供了一组机器指令,处理器的主要职责是解释执行机器指令。为了模拟生产者和消费者进程的并发执行,我们必须模拟一组指令和处理职能。
模拟的一组指令见图12-2,其中每条指令的功能由一个过程来实现。用变量PC来模拟“指令计数器”,假设模拟的指令长度为1,每执行一条模拟指令后,PC加1,提出下一条指令地址。使用模拟的指令,可把生产者和消费者进程的程序表示为图12-3的形式。
定义两个一维数组PA[0..4]和SA[0..4],每一个PA[i]存放生产者程序中的一条模拟指令执行的入口地址;每个SA[i]存放消费者程序中的一条模拟指令执行的入口地址。于是模拟处理器执行一条指令的过程为:取出PC之值,按PA[PC]或SA[PC]得模拟指令执行的入口地址,将PC之值加1,转向由入口地址确定的相应的过程执行。
(5) 程序设计
本实习中的程序由三部分组成:初始化程序、处理器调度程序、模拟处理器指令执行程序。各部分程序的功能及相互间的关系由图12-4至图12-7指出。
·初始化程序:模拟实习的程序从初始化程序入口启动,初始化工作包括对信号量s1、s2赋初值,对生产者、消费者进程的PCB初始化。
·处理器调度程序:在计算机系统中,进程并发执行时,任一进程占用处理器执行完一条指令后就有可能被打断而让出处理器由其它进程运行。故在模拟系统中也类似处理,每当执行一条模拟的指令后,保护当前进程的现场,让它成为非运行态,由处理器调度程序按随机数再选择一个就绪进程占用处理器运行。
四、实习报告
(1) 实习题目。
(2) 打印源程序并附上注释。
(3) 从键盘上输入一组字符,由生产者每次读入一个字符供消费者输出。运行模拟程序,打印依次读入的字符和经消费者输出的字符。
(4) 把生产者和消费者进程中的P操作、V操作都改成空操作指令,观察在两者不同步的情况下可能出现的与时间有关的错误。打印依次读入的字符和经消费者输出的字符。
五、实习代码
#include<stdio.h>
#include"math.h"
#include <stdlib.h>
#include<string.h>
#define num 10
typedefstruct PCB{
char state;//E-运行,R-就绪,W-等待,C-完成
int cause;//1-等待信号量S1,2-等待信号量s2
int pause;//保存断点信息
char* procedure;
}PCB;
PCB pro;PCB *pronode=&pro;
PCB con;PCB *connode=&con;
char i[100];
char x,c;//x接受输入字符,c接受输出字符
char B[num+1];//存放缓冲区中的商品
intin,out;
intPC,sum;//程序计数器
int a,s1,s2;//s2-缓冲区种商品的数量,s1-缓冲区中还可放入的商品数量 inttag,retag;//tag=0-CPU未中断;tag=1-cpu中断
int stop;//stop=0-开中断;stop=1-关中断
int (*PA[5])(int *s,PCB* P);//生产者指令数组
int (*SA[5])(int *s,PCB* p);//消费者指令数组
int W(int* s,PCB* q)
{
tag=0;
q->state='w';
printf("当前%s进程已被更新为阻塞态\n",q->procedure); if(strcmp(q->procedure,"生产者")==0)
printf("原因为等待信号量s2\n\n");
else
printf("原因为等待信号量s1\n\n");
q->cause=2;
stop=0;
return 0;
}
int R(int* s,PCB* q)
{
printf("进程%s已被更新为就绪态\n",q->procedure);
if(strcmp(q->procedure,"生产者")==0)
{printf("原因为信号量s2已满足\n\n");q->state='r';}
else
{printf("原因为信号量s1已满足\n\n");q->state='r';}
q->state='r';
q->cause=0;
return 0;
}
int p(int* m,PCB *q)
{
stop=1;
*m=*m-1;
if(*m<0)
W(m,q);
else
stop=0;
tag=0;
q->pause=PC;
return 0;
}
intprov(int *m,PCB *q)
{
stop=1;
*m=*m+1;
if(*m<=0)
R(m,q);
stop=0;
tag=0;
pronode->pause=PC;
return 0;
}
intconv(int *m,PCB *q)
{
stop=1;
*m=*m+1;
if(*m<=0)
R(m,q);
stop=0;
tag=0;
connode->pause=PC;
return 0;
}
int Put(int *s,PCB* pro)
{
in=(in+1)%10;
B[in]=c;
pro->pause=PC;
return 0;
}
int Get(int *s,PCB* con)
{
out=(out+1)%10;
x=B[out];
con->pause=PC;
return 0;
}
int consume(int *s,PCB* q)
{
printf("消费者取出商品%c\n\n",x); q->pause=PC;
if(x==i[sum-1])
return 1;
return 0;
}
int produce(int *s,PCB *q)
{
篇二:沪教版四年级语文上册同步练习
1、 老师领进门
一.看拼音写词语、句子:
zu? lu?h?u diàn h?ng m? zhǐwěi wěi d?ng tīng yī jīn
___________________________________________ _______
yǒu shēng yǒu sa chuī yān niǎo niǎo mào shang niàn dao________________ _____________________________________
hē zhùhuǎng rú shēn lín qí jìng jiá rán ?r zhǐ zī rùn
______________________________________________ ______
yǐn r?n rù shangchuàng zu? p?i yù kāi qiàozhǔ guǎi zhàng_______________ _____ ______ ________ ______________
gōng gōng jìng jìng
___________________
1. shí nián shù mù , bǎi nián shù r?n 。
_________________________________________
1. yǒu xīn zāi huā huā bù kāi , wú xīn chā liǔ liǔ ch?ng yīn 。
__________________________________________________________
二.近义词:
茂盛 ( ) 喜爱( ) 培育( ) 感谢( )
反义词:
茂盛 ( ) 喜爱( ) 丰富( )
三、划出正确的读音
1.正(zhēnɡ zhanɡ)月里,正(zhēnɡ zhanɡ)是蜡梅吐艳的季节。
2.琴声戛(ɡá jiá)然而止,我们好久才回过神来。
3.老师的谆谆教诲(huì huǐ),我永远牢记。
四.词语积累:
1.恭恭敬敬(AABB): ________________ _________ __________
2.娓娓动听(AABC): _________ ________ _________ __________
3、形容口才好说话吸引人的成语: _______ _________ _________
4、形容知识丰富才学出众的成语:________ __________ _________
2、 孔子和学生
一、看拼音写词语。
jǐn shènhé yán yuè sèyuǎn jìn chí míng
() ( ) ( ) qiān hòu yīn cái shī jiào jiā jìngbāo luó
()() ( ) ()
二、照样子填上合适的词语。例:(守)信用
( )学生( )人才( )问题( )教育
( )糊涂( )原因( )作业( )课文
三、写近义词。
敬重() 疑惑()谦虚()
严谨() 庄重()闻名()
四、写反义词。
敬重()亲近()深远()
谦虚()贫穷()聪明()
五、阅读训练
窗外
从前,当这里还是乡村的时候,我常在窗边,看窗外的美景。
春天里,农民披着如丝的细雨,赶着水牛耕田。细嫩的草叶给田野抹上一层淡淡的绿色。
泥土的清香扑面而来,美妙而清脆的鸟声也开始在耳边唱起来。
夏天,小溪上映着夕阳。暮色中,孩子们在水中无拘无束嬉戏,笑声、歌声一齐由窗外
飞进来。夜里,微风习习,蛙鸣声声,萤火虫在草丛里闪闪发光,星星一眨一眨的,好像在和我们捉迷藏。
秋天,田野里一片金黄。农民们微笑着,收割稻谷,收获喜悦。一望无际的稻田上,
不时有几只鸟儿飞过,它们的叫声也是那么快乐。
冬日里,只要天气不冷,母鸡就会领着遍身鹅黄的小鸡,在田间啄食残留的谷粒。公鸡
拍打着翅膀高声啼叫,吓得滚圆可爱的小鸡满地飞跑。
这已是很久以前的事儿了。过去古朴美丽的乡村,如今已变成林立的闹市了。
1、在《新华字典》里查“望”字,用音序查字法应查大写字母 ;用部首查字法应先查 部,再查 画。“望”字在字典里的解释有:①向远处看;②探望;③名望。“一望无际”的“望”应取第 种解释。
2、从短文中找出合适的词语填在括号里。
()的星星()的草叶()的小鸡
()的稻田()的鸟声()的叫声
3、这篇段文一共有 个自然段。
4、根据短文的内容填空。
(1)、请你在文中的最后一个自然段各找出一个词语来形容一下家乡过去和现在的样子。过去:;现在:。
(2)在第三自然段中,作者主要抓住了 、 、 、 、 等几种事物来描写乡村夏天的美丽景色。
5、这篇短文主要写的是()。(把序号填在括号里)
①我家窗外的美景。 ②春、夏、秋、冬的美景。 ③我以前住过的乡村一年四季的美丽景色。
3、父亲的叮嘱
1、 照样子写词语
例:亭亭(玉立)
面面( )娓娓() 头头()
波光(粼粼)
议论( )大名() 气喘()
2、多音字组词
角( )( ) 倒()( ) 应( )( )
( )( ) ()( )( )( )
3、填空
“叮嘱”的意思是,与“叮嘱”意思相近的词语还有 、 、 。
4、 读句子,说说你的理解
“你看见对象是怎么样的,就得把它画成什么的,不要想当然》父亲总是这样叮嘱我。
5、 课文理解
父亲的叮嘱在文章中出现了几次?分别是在什么样的情况下出现的?
4、餐桌上的大学
1 、照样子,在括号填上合适的词。 例:增长(才干)
拯救( )回答() 打开( ) 寻找( )增长() 吸收( )
2 、根据课文的意思在文中找出词语写作括号里。
(1)非常渺小,不值得一提。( ) (2)没有一点声音,形容非常静。 ( ) (3)急迫的不能等待。( )
3、近义词
宽恕( )聆听()喧闹( )
4 、读父亲的话,说说你的理解。父亲常说:“人最不可宽恕的,是晚上睡觉时间同早上一样无知。” 5 、从每天晚餐的餐桌上,这一家究竟学到了什么? 6 、为什么题目叫“餐桌上的大学”,谈谈你的理解。
5、我的第二次生命
1.正确抄写词语
赋予 如愿以偿 排斥 衰竭 不假思索焦虑感染 挣脱
2.选择一个词语造句。如愿以偿 不假思索
3.读了文章后你对“第二次生命”有了什么新的理解?用几句话写一写
4.父亲几次挽救了女儿的生命?分别是在怎样的情况下?怎样救的?
5.找一找文中描写父亲语言的句子,体会人物当时的心理。从这些语言,你又能感受到什么?
篇三:关于档案管理三纳入、四同步规定
档案管理“三纳入、四同步、四参加”规定
一、档案工作“三纳入”
1、各种载体文件材料的形成、积累、整理和归档工作,纳入项目开工、施工、竣工等各项管理程序。
2、纳入我处各项工作计划。
3、作纳入各项职能部门的职责范围与有关领导人和工作人员的岗位责任制。
二、 档案部门“四参加”
1、档案部门或档案人员参加项目前期专家论证会。
2、档案部门或档案人员参加基础工程招投标会。
3、档案部门或档案人员参加基础工程竣工验收会。
4、 档案部门或档案人员参加设备仪器开箱验收会。
三、档案工作“四同步”
档案工作与科研、设计、工程建设、勘察、观、探、测等各项活动实行“四同步”管理。
1、计划任务的同时,提出文件材料的归档要求。
2、 检查计划进度的同时,检查文件材料形成情况。
3、评定鉴定成果的同时,验收鉴定档案材料的完整、准确、系统情况。
4、上报登记和评审奖励科技成果以及科技人员提职考核时,档案部门同时出具归档情况证明材料。
四、 实施“三纳入”、“四同步”、“四参加”的要求
1、产品试制定型、科研成果鉴定、基建工程竣工验收,归档文件材料不齐全、不齐整、不准确、不系统的鉴定、验收;施工单位不能向档案部门移交全套规范的竣工文件资料,档案部门不签字盖章,工程经费不得结算。
2、 产品和工程创优、科研成果评奖,归档文件材料不符上述要求的,档案部门不签署意见,不得申报成果。
3、档案部门或档案人员在施行“三纳入”、“四同步”、“四参加”活动中,要及时收回应归档的全部文件材料并办理填写登记手续,连同文件材料一并归档保存。
4、认真执行各项规定,并与档案部门主动做好协调配合工作,确保“三纳入”、“四同步”、“四参加”能够全面哟小实施。因主观因素违反本规定要追究部门领导和责任人的责任,并视情况给与经济处罚。