博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
处理器管理与进程调度
阅读量:4962 次
发布时间:2019-06-12

本文共 907 字,大约阅读时间需要 3 分钟。

一 .用图文描述组成进程的要素,并说明其作用

1.进程控制块用来存储进程的标识信息、现场信息和控制信息

2.进程程序块是被进程执行的程序,规定进程一次运行所应完成的功能

3.进程核心栈,每个进程捆绑一个,进程在内核态工作时使用,用来保存中断/异常现场,保存函数调用的参数、局部变量和返回地址等

4.进程数据块,是进程的私有地址空间,存放各种私有数据,用户栈也在数据块中开辟,用于在函数调用时存放栈

5.标识信息用于唯一地标识一个进程,分为用户使用的外部标识符和系统使用的内部标识符

6.现场信息用于保留进程在运行时存放在处理器现场中的各种信息。

7.控制信息用于管理和调度进程。

二.用图文描述什么是进程切换,为什么进行进程切换,进程切换的步骤?

进程切换步骤:保存被中断进程的处理器现场信息;修改被中断进程PCB的有关信息,如进程状态等;把被中断进程的PCB假如相关行列;选择占用处理器运行的另一个进程;修改被选中进程PCB的有关信息,如改为就绪态;设置被选中进程的地址空间,恢复存储管理信息;根据被选中进程的上下文信息来恢复处理器现场。

进程切换原因:使程序运行的更加顺畅,保证高优先级的进程优先进行。

三、用图文描述模式转换、进程切换、进程状态转换三者之间的关系

四、python练习:

  观察父进程、子进程

import timefor i in range(5):    print(i)    time.sleep(3)

  

  观察进程运行状态

import psutilimport osos.getpid()psutil.Process()

  

  输入多个作业的作业编号,到达时间,所需CPU时间,形成列表,以备算法使用。

jobs=[]for i in range(3):    job=input('请输入作业编号,到达时间,所需CPU时间:')    jobs.append(job)for i in range(len(jobs)):    print(jobs[i])

转载于:https://www.cnblogs.com/shiweikang/p/10577498.html

你可能感兴趣的文章
C语言中的setjmp和longjmp函数
查看>>
scala学习笔记3(trait)
查看>>
Apache Log4j使用实例
查看>>
Miller-Rabin判质数和Pollared-Rho因数分解
查看>>
Python-HelloWorld
查看>>
canvas 绘制图形
查看>>
【转】如何用Eclispe调试java -jar xxx.jar 方式执行的jar包
查看>>
线程中释放锁的方式
查看>>
hibernate hql limit的实现方式
查看>>
spring mvc controller中的参数验证机制(二)
查看>>
2017年秋季个人阅读计划
查看>>
利用图片代替按钮
查看>>
[剑指Offer] 数据流中的中位数
查看>>
css-float浮动详细
查看>>
Opencv学习笔记——release和debug两个模式的运行问题
查看>>
安装VmwareTools遇到的问题
查看>>
awk 命令详解
查看>>
本地安装dubbox
查看>>
flex编译命令相关
查看>>
[vs 使用技巧] VS2013显示行数 行号
查看>>