进程原理

131 篇文章 1 订阅

操作系统功能:
进程管理
内存管理
设备管理
文件管理

从开机即计算机加电到操作系统接管计算机的过程中发生了什么?
编一个Hello world的操作系统,需要做什么事情
思考???

进程的基本概念
CPU发展很快,处理速度太快,很快就做完了,于是就空闲了下来,所以有人就想同时处理很多事情,就是不要让CPU在那里闲着。
摩尔定律
多道系统 一个系统同时接受多个任务,同时被执行。实际上并不是真正的同时,而是CPU轮流处理多个任务。因为CPU很短的一段时间内只能处理一个任务。这就是伪同时。但是由于CPU处理事物很快,我们根本就感觉不出来。因为从一个比较宽泛的时间上,它们算是同时的。
伪并行
从宏观上是并行,从微观上是按照顺序执行。
从不同的层面上去看待任何事物,都会出现或多或少的误差,这是因为当你在一个层面上看待一个事物的时候,你所看待的这个事物实际上并不只是单纯的这个事物,而是事物与那个层面或多或少的混合物。一句话,就是那个层面本身,也或存在,或影响了你所看待的这个事物,换句话就是,这个事物本身就包含你所处的层面。

进程
一段程序正在被执行的一个实例。

程序,一段静态的代码,可以认为程序跑起来的时候一个机器,冷冰冰的。

进程可认为是一个机器所做的一种活动,是活的,就像人体所有的功能属于程序,而我们使用这些功能去做事情,比如跑步,就是进程。

进程包括:
控制信息 一段程序代码 处理的数据

PCB
processes control block

内容
processes ID
进程状态
进程优先级
寄存器

段寄存
数据寄存器

记录现场 恢复现场

lnux文件包括哪三种

Unix进程的层次结构 伞

进程树 parrent pid

windows进程平级
CPU核数越多,处理数据的能力越强。
就是一块CPU上面能处理数据的芯片组的数量。一个核就是一个执行单元,就能执行一个进程,如果有两个四核的CPU则,最多能够同时执行8个进程。
诞生
系统开机,操作系统内核,会创建祖先进程,会负责启动被设置开机启动的任务
通过system call来调用系统的进程
成熟
工作
衰老
死亡
在Unix中,进程衍生创造,与其说是父进程生出了子进程,不如说是父进程克隆自身
除了老祖宗一类进程以外,其他进程都是通过fork克隆自身而来的。
系统调用 fork
将自身进程一分为二,克隆自身,一模一样,代码一模一样,资源,数据,但是控制块不一样

fork有返回值 父亲的返回值就是儿子的 pid 大于零. pid 是系统中唯一大于零的正整数
零就是儿子
如果是-1 是克隆失败(pcd满了 系统资源用完了)

ls.l
父亲 有代码身体 fork之后多一个脑袋(儿子),然后父亲去睡觉了。儿子醒来后用exec产生新的身体代码,然后儿子执行ls exit结束自己的生命之前并且叫醒父亲,会扔掉所有的代码,但是会剩下一个脑袋就是剩下pcd,父亲醒了之后会清理儿子的pcd.于是有一个僵尸态。最后循环等待系统命令生成下一个儿子。

儿子怎么死?1自杀,
2被杀死,受到一个信号,两种:
商量性的
强制性的,

exec没有返回值

c library和system call的区别

就绪态 只要CPU给它,就可以进行
ready running

阻塞状态 除了CPU以外还缺少一个别的资源

debug

如果多个进程处于ready状态,利用算法挑选一个进程去运行

blocked主动发现有什么东西没有到位,主动去阻塞,由别的进程将它唤醒,然后去重新排队等待,如果优先级很高,很快就可以排到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值