您的位置:首页 > 其它

操作系统03 进程与线程

2017-12-09 22:48 225 查看
整型信号量

s 大于0 可用小于0不可用

p操作 wait原语句

v操作 signal

忙等待

保持关门状态 -1

优点:实现简单

原子操作 不允许中断

boot 引导

进程控制块pcb 数据结构 结构体

保存状态 是为了恢复状态

切换回来之后 进程的感觉是没有任何变化 还是占据cpu

这些构成队列

再进程调度的时候涉及队列

就绪队列

设备队列 每一个设备每一个io都有一个队列

进程在不同的队列中迁移

链表实现 因为不停的增删

实际情况 数组是核心

局部性原理

数组好 将局部相关的 放到更快的存储空间访问 提速

时间和空间的浪费由于硬件的提升已经不是问题

一个进程失去CPU的两种情况:

切换到就绪 或者 切换到阻塞

操作系统通过中断不让程序继续运行

最重要的是时钟中断

有意思:程序控制着CPU运行 那操作系统怎样不让程序继续运行?

一旦触发中断程序 那么就是操作系统控制CPU

还有就是程序自己进入等待态 那么一定是进行了系统调用一旦系统调用 那么一定就进入了操作系统内核 操作系统获得控制

开销浪费

调度算法 涉及效率

保存和恢复 基本没有什么可优化的

软件做不了的 硬件做的了

用很多的寄存器 不计成本的实现状态的保存切换

只要在不同的寄存器切换

shell 资源管理器 去启动进程

形成树

父进程和子进程

pstree 可以看到进程树

子进程复制父进程

子进程啥也没有 需要加载一个程序

fork创建子进程

Fork() 进程id不一样其他都是一样的且同时进行

复制一份什么都一样 下一步执行生么看寄存器所以下一步执行都是一样的

fork的返回值

如果返回值是0你接收到的是子进程

是1就是父进程

一个程序 一变2

top 监视所有进程的状态 每隔1秒刷新

msdn API Google搜索

man API Linux 看一个系统调用的用法

which 命令 查找命令在哪

mv 改变一个文件的名字

进程结束: 为什么return 0

没有区别

0 表示一切正常 其他表示有错误

返回值父进程会得到子进程的返回值

做后续工作

父进程给子进程收尸

僵尸进程

init 最根的进程

进程的他杀 kill

kill 进程

父进程杀子进程

进程之间的协作: 独立 协作

信息共享 速度提升 模块化 方便

协作方式 :消息传递 共享内存

同步非问题 不要向同一个地方写数据

容错的问题 写进去一个数 会变

消息传递 阻塞 非阻塞

当你请求一个消息但是并没有得到 那你就被阻塞

非阻塞 请求不能让满足 但是你还可以做后续

消息缓冲区

并发软件

多进程编程 多线程编程

sleep 等待状态

子进程的value不再是父进程的value

独立性 不同的内存

虚拟地址 不是物理地址

打印的每一个变量的地址 是在当前进程内存空间的偏移地址

父进程在前还是子进程在前 是近乎随机的

复制的是当前的父进程的状态

#include <stdio.h>
#include <unistd.h>

int main() {
int i;
for(i=0;i<3;i++)
fork();

sleep(30);
}


线程:

进程特点是分离

线程特点是不分离

线程比进程要简单 独立寄存器和栈

代码和数据 所以属于同一个进程的线程共享

单线程进程 任意时刻只能执行一条指令

多线程进程的划分 每一个线程占用一个pc

让一个线程里有多条路线 同时发挥作用

尽量的共享

优点:快速的相应能力

窗口画出来 相应这个消息

相应度不好

如果有一个动作是耗时的

立马新建一个线程去做费时的工作 当前线程跟用户交互

资源共享 经济实惠

创建销毁 切换进程开销大于线程

用户级线程 虚拟出来的线程 效率高 都在用户空间 不涉及操作系统 可定制性好 一个线程阻塞全部线程阻塞 操作系统是以操作系统能看得到的线程单位阻塞的 致命的问题

不能在多个处理器上分配

内核级线程

线程池 先创建好

Linux将进程线程 都叫做task

clone() 没有线程的优化 对于操作系统都是进程

本身还是个进程 轻量级的进程

Apache IIS web服务器

Apache 是多进程的模式

IIS 是多线程的实现

线程的会高效一点 本身的特性决定的

进程更稳当 线程更不稳定

线程模型不稳定 一个线程崩溃全部线程崩溃

线程更安全 因为相互独立

浏览器内核

Firefox IE 线程 稳定性差

Chrome 任何一个标签 一个窗口都是一个进程

sandbox 壳
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: