作业4月22号
-
简述操作系统发展史 - 手工操作:穿孔卡片 使用穿孔的卡片将数据手动输入计算机 同一时间机房只有一个人操作,cpu等待手工操作,资源的利用率低 - 联机批处理系统 成批地把输入机上的用户作业读入磁带,依次把磁带上的用户作业读入主机内存并执行并把计算结果向输出机输出 节省了每个用户插卡片的等待时间 - 脱机批处理系统 提高数据从硬盘读取到内存的速度,减少cpu等待的时间
-
简述进程发展史及算法演变
- 先来先服务调度算法:对长作业有利,对短作业不利 现在这种算法已经被淘汰 - 短作业优先调度算法:对短作业有利,对长作业不利 - 时间片轮转法:当你要打开新程序的时候会停下当前在执行的先把你新程序给他开
-
简述多道技术
- 允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。
-
简述同步异步阻塞非阻塞概念
同步和异步描述的是任务的提交方式 - 同步:任务提交之后,原地等待任务的返回结果,等待的过程中不做任何事,程序层面上表现的感觉就是卡住了 - 异步:任务提交之后,不原地等待任务的返回结果,直接去做其他事情,等待任务的返回结果 任务的返回结果会有一个异步的回调机制 阻塞和非阻塞描述的是程序的运行状态 - 阻塞:阻塞态 - 非阻塞:就绪态,运行态
-
书写进程创建的两种方式
# 方式1 from multiprocessing import Process import time def task(name): print('%s is running'%name) time.sleep(2) print('%s is over'%name) if __name__ == '__main__': # 1. 创建一个对象 p = Proccess(target=task, args=('deimos',)) # 2. 开启进程 p.start() # 告诉操作系统要创建一个进程 print('main') # 运行,则创建两个进程,一个是task,一个是main # windows操作系统下,创建进程一定要在main内创建,因为windows下创建进程类似于模块导入的方式,会从上往下执行 # 方式2 from multiprocessing import Process import time class MyProcess(Process): def run(self): print('sleep') time.sleep(1) print('get up') if __name__ == '__main__': p = Myprocess() p.start() print('main')