社区
Windows Server
帖子详情
小小 问题 前辈 指教??
slzmiaoer
2003-08-25 08:03:54
原语操作:是指 一组操作 要么全做 要么全不做,是一组不可分割的操作。
就 我的理解 只有 单一的一条指令 才能 做到要么全做 要么不做
操作系统 是怎样实现 原语操作的呢 ??
谢谢 指教
...全文
64
3
打赏
收藏
小小 问题 前辈 指教??
原语操作:是指 一组操作 要么全做 要么全不做,是一组不可分割的操作。 就 我的理解 只有 单一的一条指令 才能 做到要么全做 要么不做 操作系统 是怎样实现 原语操作的呢 ?? 谢谢 指教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
slzmiaoer
2003-08-26
打赏
举报
回复
我 问的是
操作系统 实现 原语操作的 原理
是不是 原语操作中 把 时钟中断 等 中断全部 屏蔽掉
就 实现了 其 操作的 不可打断性??
ceocio
2003-08-26
打赏
举报
回复
创建原语
进程可借助创建原语建立一个子进程,创建进程的主要操作过程是:
(1)申请一个空闲的PCB;
(2)为新进程分配资源;
(3)将新进程的PCB初始化;
(4)将新进程加到就绪队列中
撤销原语
一个进程在完成其任务后,应将该进程撤销,以便释放出它所占用的资源,撤销原语一般由其父进程或祖先发出,不会自己撤销自己。一旦系统中出现要求终止进程的事件后,便调用进程终止原语。终止进程的主要操作过程是:
(1)从系统的PCB表中找到指定进程的PCB。若它正处于运行态,则立即中止该进程的运行;
(2)回收该进程所占用的全部资源;
(3)若该进程还有子孙进程,则还要终止其所有子孙进程,回收它们所占用的全部资源;
(4)释放被终止进程的PCB,并从原来队列中摘走。
阻塞原语
正在运行的进程因等待某事件发生,只能转变为阻塞态,等待相应事件出现后再把它唤醒。
正在运行的进程通过调用阻塞原语主动地把自己阻塞。进程阻塞的过程如下:
(1)立即停止当前进程的执行;
(2)将现行进程的CPU现场送到该进程的PCB现场保护区中保存起来,以便将来重新运行时恢复此时的现场;
(3)把该进程PCB中的现行状态由“运行”改为阻塞,把它插入到具有相同事件的阻塞队列中;
(4)然后转到进程调度程序,重新从就绪队列中挑选一个合适进程投入运行。
唤醒原语
当被阻塞进程所等待的事件出现时,则由另外的与被阻塞进程相关的进程调用唤醒原语,将等待该事件的进程唤醒。可见,被阻塞进程不能唤醒自己。
唤醒原语的主要操作过程是:
(1)首先把被阻塞进程从相应的阻塞队列中摘下;
(2)将现行状态改为就绪态,然后把该进程插入到就绪队列中;
(3)如果被唤醒进程比运行进程有更高的优先级,则设置重新调度标志。
阻塞原语与唤醒原语恰好是一对相反的原语:调用前者是自己去睡眠,调用后者是把“别人”唤醒。使用时也要成对,前边有睡的,后边要有叫醒的。否则,前者就要“长眠”了。
挂起原语
当需要把某进程置于挂起就绪状态或挂起阻塞状态时,可调用挂起原语。调用挂起原语的进程只能挂起它自己或它的子孙。
激活原语(解除挂起)
激活原语将处于静止状态的进程变为活动状态。一个进程只能将自己的子孙进程解挂。一个进程可以将自己挂起,却不能将自己解挂。
ceocio
2003-08-26
打赏
举报
回复
所谓原语:是机器指令的延伸,往往是为完成某些特定的功能而编制的一段系统程序。为保证操作的正确性,在许多机器中规定,执行原语操作时,要屏蔽中断,以保证其操作的不可分割性。
广东电信项目个人总结
想想第一次写博客的时候还是在学校准备比赛,写了写简单的算法。 现在已经工作一年半了,实现了从学校出来要当一个程序员的
小小
梦想并且一路坚持了下来。 当然以后更加任重而道远,革命还未成功同志还需努力。 第一个从立项跟到结项的项目,对本人意义重大,其中走了不少弯路经历了许多曲折,但也正是这些促使着个人的成长 下面就个人理解来谈一谈对编程的认识,还望各位
前辈
批评
指教
。 首先是整体架构个人认为一个...
企业级Java Web开发注意的若干
问题
或建议
今天先不谈技术,我想与各位先分享下我所知的或是工作中遇到的
问题
的解决方法,希望对给开发人员能有所启示。由于本人经历还比较有限,难免有叙述不正确或有待谈论的地方还烦请各位
前辈
多多
指教
,在下先谢过各位啦。1在实际工作中,至少在很多传统行业的Web开发的架构层面上,很多有用的互联网技术或架构很可能用不上的。尽管如Redis缓存、Zookeeper分布式协调等对于提升软件性能益处很大,但很多公...
Objective-C学习资料准备
第一天来到公司报到,设备还没有领来。旁边的小伙伴问我:你是做IOS还是Android?当时脑子里很直觉的反应出三个字母,并顺口说出来:LOS?小伙伴摆了摆手说:不跟你聊了。然后是一下午一个人等待的时光。窘窘窘。。。。。。 终于有机会开始学习JAVA了。希望通过CSDN博客激励我坚持下来,希望能把自己一点
小小
的收获分享给刚开始学习的小伙伴,也希望得到博友们的
指教
,多谢啦。 下面开始了揭开神秘的i
如何从零开始写一个操作系统?
首页 发现 等你来答 登录加入知乎 如何从零开始写一个简单的操作系统? 关注
问题
写回答 操作系统 编程学习 如何从零开始写一个简单的操作系统? 看了这个:从零开始写一个简单的操作系统 求
指教
。 关注者 4,787 被浏览 352,884 关注
问题
写回答 邀请回答 3 条评论 分享 37 个回答 默认排序 知乎用户 751 人赞...
Windows Server
6,849
社区成员
178,034
社区内容
发帖
与我相关
我的任务
Windows Server
Windows 2016/2012/2008/2003/2000/NT
复制链接
扫一扫
分享
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章