网编提高 进程阶段

进程的基础

​ 1.程序

​ 一堆静态的代码文件

​ 2.进程

​ 一个正在运行的程序

​ 由操作系统操控调用交由cpu运行 ,被cpu运行

2.操作系统

​ 1。管理控制协调计算机中硬件与软件的关系

​ 2。操作系统的作用?

​ 2.没有操作系统:你们在开发软件

​ 第一层。对硬件(cpu,内存,磁盘)协调,调用

​ 第二层 如何调用接口去编程

第一个作用:将一些对硬件操作的复杂丑陋的接口, 变成简单美丽的接口,open函数

第二个作用:多个进程抢占一个(cpu)资源时,操 作系统会将你的执行变得合理有序,雨露均沾(比较 快感受不到)

阻塞:input read write sleep recv accept sendto recvfrom 。。。

操作系统的发展史

百万级代码 写的系统

多道技术

最早出现的计算机:算盘

电子类的计算机发展史

第一代计算机1940~1955(手工操作----穿孔卡片

在大学里出现了机房,想使用计算机必须预约

先连接调配各个硬件,1.5小时,真空管,然后在插上程序调试,效率低

优点:个人独享整个计算机资源

缺点;1.硬件条件插线,耗时

​ 2.所有人串行执行

第二代 1955~1965 磁带存储--批处理系统

优点程序员不用亲自对硬件进行插线操控,效率提高

可以进行批量处理代码

缺点:

1.程序员不能肚子使用计算机

2.你的所有程序还是串行

第三代集成电路,多道程序系统(1955~1965)

1.集成电路:把所用的硬件变小,线路板

2.将两套不同的生产线合并成一个生产线

​ 技术上的更新:多道技术,操作系统的理念

​ 空间上的复用

​ 将一个内存可以同时加载多个进程

​ 时间上的复用

​ 实现将cpu在多个进程之间来回切换,并且保留状态,在切回来还能保持原样

几乎所有的程序都会有io阻塞

同时加载到内存 3个任务,3个进程,每个进程都有阻塞情况,只要cpu运行一个进程时,遇到阻塞立马会切换,长时间占用cpu也会切换

提升效率,最大限度的使用cpu

如果是一个IO(阻塞)密集型进程,来回切换提升效率

如果在一个计算密集型,耗时来会切换降低效率

第三代计算机 广泛采用必须的保护硬件(程序之间的内存彼此隔离)之后,推动第三代计算机应用而生

每个人占用计算机的时间有限的

多人(少于10个)共同使用一个计算机主机

第四代计算机:至今

面向字:大型的科学计算机

面向字符:商用计算机

进程的理论(重点)

串行:所有的任务一个一个完成

并发:一个cpu完成多个任务,看起来是同时完成的

并行:多个cpu执行多个任务,真正的同时完成

阻塞:cpu遇到io就是阻塞

非阻塞:没有IO叫非阻塞

程序:一堆静态文件

一个正在执行的程序任务,一个进程

一个程序能否同时开启多个进程?可以

进程的创建(进程之间不允许通信)?

一个子进程必须基于主进程

主进程是启动子进程的

​ 一个主进程可以开启多个子进程。

unix:fork创建子进程

uninx(linux,mac):创建一个子进程会完完全全复制一个主进程所有的资源,初始资源不变。

windows:操作系统调用CreateProcess处理进程的创建

windows:创建一个子进程,会copy主进程所有的资源,但是会改变一些资源

​ 系统是最主进程

进程的状态

运行程序运行到io进行阻塞 程序进入阻塞状态

阻塞结束进入就绪态 需要在就绪态等待开始运行 等程序遇到io阻塞再进行运行

原文地址:https://www.cnblogs.com/strawberry-1/p/11378152.html