网络编程简介 网络编程 二:将应用程序对硬件资源的竞态请求变得有序化

一:什么是进程

进程是指正在处理的的一个过程,进程实在是对正在运行程序一个抽象。

一个程序的运行是操作系用发送指令给CPU,CPU调用命令将程序从硬盘中加载到内存,这整个过程都是操作系用在控制。

操作系用的作用:

隐藏复杂的硬件接口,体统简单的抽象接口(将复杂指令简单化)

管理调度进程,并将多个进程对硬件的竞争变得有序。

串行:一个程序完完整整的执行下来,执行完后再去执行下一个。

并发:看起来想像是同时运行的

并行:真正做到了同时运行

多道技术

1、产生背景:

针对单核,实现并发

2、空间复用:

如同内存中同时又多道程序

时间上的复用:

复用一个cpu的时间片

强调:遇到io切,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样 才能保证下次切换回来时,能基于上次切走的位置继续运行

现代计算机:

现在的主机一般是多核,那么每个核都会利用多道技术, 有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,会被调度到4个cpu中的任意一个,具体由操作系统调度算法决定。

二:将应用程序对硬件资源的竞态请求变得有序化

串行: 一个完完整整的执行完了再执行下一个. 并发: 看起来是同时运行的 并行: 真正做到了同时运行

多道技术(了解): 空间复用: 共用一个内存条,每一个进程都有自己独立的内存空间,互不干扰,物理级别的隔离. 时间复用: 共用了一个cpu cpu切换(掌握): io的时候,占用时间过长切换,

#三 现代计算机: 现在的主机一般是多核,那么每个核都会利用多道技术 有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,会被调度到4个 cpu中的任意一个,具体由操作系统调度算法决定。

并发:切换+保存状态

开启子进程: 把父进程的代码完整复制到一个新的内存空间里去执行.. x = 1 def task(): print(x)

createProcess(task)