现在操作系统-第二章读书笔记2.1

2.1进程
定义:
an abstraction of a running program

模型:
CPU快速得再各个进程之间切换运行,从三个角度去理解,1.从CPU角度,只有一个计数器,只不过切换进程的时候,会同是换里面的数据,从而使得不同进程运行时不会互相干扰;2.从单个进程的角度,他们会认为自己独占着CPU的计数器(而实际上只是逻辑上占有),3.时间轴上看,一个时间点,只运行一个进程。并没有出现好多进程一起运行情况,只不过每个进程运行的时间非常短。。。
如果对于时间精度要求很高的程序,不能内置循环来估计时间,因为循环到一半的时候,很可能出现调度了,导致事件不准确
recipe is the program   .The process is the activity consisting of our baker reading the recipe,fetching the ingredients,and baking the cake.

同意程序运行2次会出现2个进程,而不是1个进程。

进程的创建:
原因: 1.系统初始化
2.某个进程调用创建进程的系统调用 
3.用户请求创建一个进程  
4.开始批处理
系统初始化的时候,会创建一些前台进程和一些后台进程(在UNIX 中称之为守护进程)
当有些工作需要进程间协作的时候,创建进程很重要。。
从技术上讲,所有进程都是由另一个进程所创建的。
windows中父子进程没什么硬性关系,unix中父子关系很明显的。。父子进程有各自独立的地址空间。但是有一些资源会被继承下来,比如文件描述符

进程终止:
原因: 1.正常结束(自愿的)
2.错误结束(自愿的) 这个错误结束指的是程序设计的时候考虑到的,是程序员自由有意 愿在发生这个错误的时候推出的,而不是操作系统强制退出的
3.致命错误(非自愿) 比如除0错误
4.被其他有权限的进程kill了(非自愿的)
上面的第3点还有一种让进程自己处理致命异常的机制(有些系统可以,有些不行,unix可以)
一个进程,只有一个父进程,当一个进程接受到一个信号的时候,子树中所有进程都有收到这个信号。。一个系统只有一棵进程树。。。。(注意:只有子树会收到信号,所以和只有一棵进程树没有矛盾)

进程状态:
一个进程的输出可以当做另一个进程的输入,会用linux的应该很熟悉
阻塞有可能由进程自身引起,也可能由操作系统引起。比如时间片用尽;
进程状态: 1.运行(正在使用CPU)
2.就绪(万事具备,只欠CPU)
3.阻塞(不能运行,等待某些事件出现)
1->2   时间片用尽
2->1 调度到该进程了
1->3 等待某些事件发生
3->2 等待的事件发生了
木有3->1

进程的实现:
核心数据结构: 1.process table     (with one entry per process)
2.process control blocks (items of  )  
3.interrupt vector (associated with each I/O class)
关于3:
中断响应由硬件完成
中断软件用汇编写
中断处理程序用C,处理完后又用汇编跳回原来进程运行的地方

多进程建模:
核心公式:CPU utilization = 1 - p^n (p = the time of a process waiting for I/O)
(n = how many processes in memory)

小结:
进程是操作系统做最核心的概念,其中关键知识点有,进程的创建,进程的状态,进程的终止,进程中断。关于进程同步及进程通信,书中放在后面的小结中讲了。。本小结无难点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值