操作系统——进程9问

买了本《现代操作系统》,前面的介绍部分直接略过,在回家的路上直接从进程开始看。对并发、多道程序设计有了初步的了解,在此将心得稍微写一下。


1、什么是进程?

进程是正在运行程序的一个实例,可以把他比作计算机正在做的某一件事情。


2、什么是并发?

在单核CPU中,实现真正的并发是不可能的,因为在一个时间片里,CPU只能运行一个进程。就好比,你不可能同时做饭,同时看书。那么所谓的并发是什么呢?能实现“并发”是因为CPU的运转速度是非常快的,所以进程间来回切换速度是异常迅速的,速度快到人感觉他们是同时运行的,并没有切换。当然,对于多核CPU来说,并发就不是一回事情了,但是每一个核每次还是只能运行一个进程。


3、进程和程序有什么不同?

进程和程序的区别很微妙。进程包含了输入数据,程序和输出数据,可以说进程和程序是一个真包含的关系。程序是告诉一个进程该怎么运行的一个逻辑描述,进程则是实现输入数据在程序中的执行后的输出,这样一整个过程。书中的比喻是做蛋糕:程序相当于是食谱,输入数据就是做蛋糕的原材料,CPU是做蛋糕的人,进程就是实现做蛋糕这一整件事情的动作总和。


4、什么是前台进程和后台进程?

与人类进行交互的进程称为前台进程(办公软件、游戏),停留在后台处理如电邮、WEB页面、新闻、打印的进程称为后台进程,也称作守护进程。


5、进程的状态有哪几种?

运行态——进程实际占用着CPU;

就绪态——准备运行的进程,但是因为其他进程占用着CPU,所以暂时被挂起;

阻塞态——除非某种外部事件发生,否则不能运行(比如需要输入数据才能运行的进程);


6、进程之间的切换是怎么控制的?

有一个叫做进程调度程序的程序(-__-),他是操作系统的一部分,如果系统认为一个进程占用CPU的时间过长,那么他会选择让另一个进程开始运行。进程调度程序的调度标准主要从整体效率和竞争公平性中去权衡。进程调度程序的层次结构在普通进程之下。


7、进程是用什么数据结构实现的?

操作系统中有维护着一张表格(书上说的是:结构数组。估计就是个指针实现的动态数组,或者有指定大小的静态数组),这个表格有个名字:进程表,每个进程占用着表格中的一个表项。


8、进程在切换时底层是如何实现的?(微机接口没学好,这段就不是很理解了,真伤不起啊)

当一个磁盘中断发生时,中断硬件将程序计数器、程序状态字、有时还有一个或多个寄存器压入堆栈,计算机随即跳转到中断向量指向的地址。这些操作都是由汇编语言实现的。这一部分还有待进一步研究……


9、什么是多道程序设计模型?

比如有N个进程,每个进程等待I/O操作的时间与其停留在内存中的时间比为p(也就是在内存中不干事的时间),则所有进程都在等待I/O的概率是p^n,那么他的否命题:至少有一个进程不在等待I/O(即,在I/O)的概率,也即CPU的利用率为:1-p^n。从这个式子里就可以看出,等待I/O的时间越长或进程数越少,CPU利用率越低,吞吐量也就越低(也就是说,进程干事的时间比例越高,干事的进程越多,CPU利用率就越大)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值