计算机四级网络工程师-操作系统原理-第3章进程线程模型
文章目录
单选题
进程运行过程七状态之间关系(状态转换):
记忆技巧:心里大概记住这个图,然后记住都是相邻可以互转换状态,记忆特殊情况。
a.仅运行状态可以转为退出【运行——退出】
b.运行可以直接转为阻塞或者转为就绪挂起【运行——就绪/就绪挂起/阻塞】
c.记住a和b触发转换的事件,运行——就绪(时间片用完),
就绪——运行:该进程创建完成进入就绪队列并具有最高优先级
OS特性:
并发性 | 宏观上看是不同进程一起向前推进,微观上看不同进程交替占用资源向前推进 |
---|---|
独立性 | 一个进程是一个相对完整的资源分配单位 |
异步性 | 每个进程按照各自独立的、不可预知的速度向前推进 |
求A、B两个程序执行完毕时间:
第54题:题目如下
参考解析:45秒【解析】题目要求的是在并发执行的环境下,设备与CPU可以并
行,所以A程序和B程序可以交替占用设备和CPU序可以交替占用设备和CPU
涉及到Father——son,child——parent
如题,题库全选A,都是先son/child再Father/parent,共两行输出结果,先输出儿子再输出爸爸
涉及到函数fork()问打印几行Hello World:
函数fork()特点:调用一次,返回两次
题型1:**单个fork()**出现
fork()本身创建2个进程,2个输出结果,加上开头的print=2+1=3次
题型2,**2个fork(),fork2有print()**嵌套形式是次方倍数增长
fork()创建2个fork()进程,第二个fork运行2次print,加上开头的print=2^2+1=5次,次方倍增关系,有第三个fork()就是8次+开头1次
题型3,**3个fork(),fork3有print()**嵌套形式是次方倍数增长
注意是次方倍增关系!
题型4,2个fork(),各有print()
题型4:,循环里的fork()
做题:先判断循环次数,再看里面fork什么情况,把每次循环的结果累加
线程库函数各语句含义:
pthread_join :等待一个特定的线程退出; | pthread_yield :线程让出CPU(主动释放); |
---|---|
pthread_creat :创建线程库函数; | pthread_exit :结束一个线程的库函数 |
条件变量的使用中,``pthread_mutex_initO表示创建一个互斥量#
init`表示初始化
C语言程序代码阅读题
涉及到``pthread`的C语言程序代码阅读题:
问存在几个线程(线程数量)
问create函数创建的线程名是什么
问运行结果(3次Hello World,并且每个后跟数字,数字顺序不重要,线程并发是随机执行时间)
同步和互斥关系应用题(篮球比赛、足球比赛等)
同步关系 | 互斥关系 |
---|---|
篮球、足球同队队员、进程A等待B发来数据、进程A向B传输数据(这都是协同动作、相互配合、共同完成一个任务)、生产者和消费者进程中既存在同步关系、也存在互斥关系 | 篮球、足球不同队(敌对)队员 |
作业响应比
响应比=(等待时间+预计运行时间)/预计运行时间
需要直接记忆单选
所谓程序并发执行是指两个或两个以上程序在计算机系统中同处于已开始执行且尚未结束的状态。程序并发执行产生了一些和程序顺序执行时不同的特性:
(1)并发程序在执行期间具有相互制约关系;
(2)程序与计算不在一一对应:
(3)并发程序执行结果不可再现。
(4)并发程序的执行过程失去了封闭性(执行过程透明性)
函数fork()属于进程控制类系统调用,如搭配print()即可输出2次结果
进程控制块(PCB)的内容一般可以分成调度信息和现场信息两大部分,调度信息包括:进程名、进程号、存储信息、优先级、当前状态、资源清单、“家族”关系、消息队列指针、进程队列指针和当前打开文件等;现场信息包括:程序状态字、时钟、界地址奇存器等。中断源不属于进程控制块中记录的信息。禁选-中断源
【线程所需资源】线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器、栈、线程相关的用户栈/系统栈)。
单纯基于时间片考虑的调度算法:轮转法(RR)、
综合了多种调度算法:多级反馈队列算法
比较公平的算法:先来先服务(是一种不可抢占的调度算法)
多道程序设计技术:提高I/O设备的利用率、提高计算机软硬件资源的利用率、缩短作业的平均周转周期
多道程序设计系统中能并行工作的是:CPU与外存设备
多道程序设计的意义:宏观上有多个进程在计算机中同时运行,根本目的是提高整个系统的效率
与进程具有一一对应关系的是:进程控制块
进程和程序既有联系又有区别,程序是构成进程的组成部分之一。从静态的角度看,进程是由程序、数据和进程控制块(PCB)3部分组成。程常是静态的,而进程是动态的。
进程的唯一“标志”是指:进程控制块
可再入程序:纯代码程序,运行中不需要修改
为了解决内存中的各个程序互相干扰或干扰系统,需要解决的问题是:程序装入内存时的重定位问题
函数wait():父进程获取子进程的结束状态并回收资源
一个进程从就绪状态变为运行状态一定不会引起进程调度
不能引起新进程调度的是:新创建的进程进入就绪队列
Internet的主要组成部分可以概括为4部分:通信线路、路由器、主机和信息资源。
主机是信息资源和服务的载体,路由器是通信节点、选择网络路径、转发路径
多选题
重要提示:很多题目是全选,多选题一定要用排除法来做,5个答案排除一个错误答案剩下全选【只用记忆错误选项,刷多了会一眼看出哪些是对的】
进程的七状态模型,考状态转换
技巧:按置顶的单选题第一个技巧,记住图片位置,然后联想关系来选
T1和T2并发执行,哪些是有可能的结果
需要直接记忆多选
几种典型线程实现方式:用户线程、内核线程、混合线程
进程控制块PCB的主要组织方式:线性表、索引表、链表
进程和程序共有的部分:代码、数据
进程的基本状态3种:运行、就绪、等待
线程不具有自己的独立地址空间,一个进程包含多个线程,这些线程共享内存和文件
线程是进程中的一个实体,是CPU调度和分派的基本单位
运行——就绪的可能原因:被调度程序抢占处理机、进程创建完成、时间片用完(执行完成重新就绪)