操作系统理论课程学习问题总结
文章平均质量分 52
大三下操作系统理论课程学习过程中的一点小总结&概括
Alkali!
本科:NUAACCST16191
硕士:SEUCSE220
展开
-
操作系统文件相关
连续组织方式链接组织方式索引组织方式总结原创 2022-06-25 19:44:47 · 166 阅读 · 0 评论 -
《处理机调度与死锁》几道例题答案详解
证明题1给定一组作业J1,J2,…JnJ1,J2,…JnJ1,J2,…Jn,它们的运行时间分别为T1,T2,...TnT1,T2,...TnT1,T2,...Tn,假定这些作业同时到达,并且在一台处理机上按单道方式运行,试证明:按最短作业优先算法调度时,平均周转时间最小。解答:周转时间:从提交作业开始到作业结束对于单个作业而言,周转时间=等待时间+作业执行时间平均周转时间是对于整个系统而言的,所有作业的周转时间取平均数平均周转时间=总周转时间/作业总数平均周转时间=总周转时间/作业总数平均周转原创 2022-05-09 20:18:10 · 4927 阅读 · 0 评论 -
Windows C++ 多线程编程示例
/*题目:主线程创建两个辅助线程,辅助线程1使用选择排序算法对数组的前半部分排序,辅助线程2使用选择排序算法对数组的后半部分排序,主线程等待辅助线程运行結束后,使用归并排序算法归并子线程的计算结果开发工具:DEV windows平台语言:C++*/#include <windows.h>#include <iostream>using namespace std; #define MAX 100 //数组空间最大值int array[MAX]; //待排原创 2022-04-26 09:48:59 · 5154 阅读 · 0 评论 -
用户级线程的好处、优点
(1) 线程的调度不需要内核直接参与,控制简单。(2)可以在不支持线程的操作系统中实现。(3)创建和销毁线程、线程切换等线程管理的代价比内核线程少得多。(4)允许每个进程定制自己的调度算法,线程管理比较灵活。(5)能够利用的表空间和堆栈空间比内核级线程多。(6)内存占用少,尤其是不用占用内核的内存资源。(7)数据同步相对简单。使用内核级线程,因为切换是“抢占”的,所以无法预测两个线程执行的相对顺序,也就必须时时留意“线程安全”这件事;而对于用户级线程,切换是开发者自己控制的,所以这个线程安全的.原创 2022-04-25 22:02:58 · 750 阅读 · 0 评论 -
线程是如何实现的?
不论是进程还是线程,都必须直接或间接地取得内核的支持。由于内核支持线程可以直接利用系统调用为它服务,故线程的控制相当简单;而用户级线程必须借助于某种形式的中间系统的帮助方能取得内核的服务,故在对线程的控制上要稍复杂些。1.内核支持线程的实现在仅设置了内核支持线程的 OS 中,一种可能的线程控制方法是,系统在创建一个新进程时,便为它分配一个任务数据区 PTDA ( Per Task Data Area ),其中包括若干个线程控制块 TCB 空间,如图所示。在每一个 TCB 中可保存线程标识符、优先级、原创 2022-04-25 21:38:38 · 912 阅读 · 2 评论 -
为什么要引入线程?线程是如何引入的?
进程是一个可拥有资源的独立单位,进程同时又是一个可独立调度和分派的基本单位。正是由于进程有这两个基本属性,才使进程成为一个能独立运行的基本单位,从而也就构成了进程并发执行的基础。为使程序能并发执行,系统必须对进程进行以下的一系列操作:创建进程、撤销进程以及进程间切换。据此可知,由于进程是一个资源的拥有者,因而在创建、撤消和切换中,系统必须为之付出较大的时空开销。这就限制了系统中所设置进程的数目,而且进程切换也不宜过于频繁,从而限制了并发程度的进一步提高。要设法将进程的上述两个属性分开,由OS分开处理,亦原创 2022-04-25 20:59:40 · 2595 阅读 · 0 评论