Python 第三十二章 操作系统基础

操作系统基础

进程基础

1、程序:
一堆静态代码文件
2、进程:
1.一个正在运行的程序进程 抽象的概念
2.由操作系统操控调用交给CPU运行 被CPU运行

操作系统

1.管理协调计算机中硬件和软件的关系
2.操作系统的作用:
如果没有操作系统,在软件开发中需要开发两层:
第一层:对硬件(CPU,内存,磁盘等等)协调,调用
第二层:如何调用各种接口去编程
作用:
1.将一些对硬件操作的复杂丑陋的接口,变成简单美丽的接口,open函数
2.多个进程抢占一个CPU资源时,操作系统会执行变得合理有序
阻塞方法:input read write sleep send recv accept sendto recvfrom

操作系统的发展史

最早出现的计算机:算盘
电子类的计算机发展史:
第一代:1940~1955
优点:个人独享整个计算机资源
缺点:耗时,硬件调试插线;都是串行执行
第二代:1955~1965磁带存储--批处理系统
优点:不用亲自对硬件进行插线操控,效率提高;可以进行批量处理代码
缺点:程序员不能独自使用计算机;所有程序还是串行
第三代:1955~1965集成电路,多道程序系统
大背景:集成电路,把所有的硬件编程小线路板;将两套不同的生产线合并成一条生成线
技术上的更新:多道技术
1.空间上的复用:
将内存分区域,一个内存可以同时加载多个进程
2.时间上的复用:
实现将CPU在多个进程之间来回切换,并且保留状态
几乎所有的程序都有IO阻塞
同时加载到内存3个任务,3个进程,每个进程都有阻塞情况,只要CPU运行一个进程时,遇到IO阻塞立马切换,长时间占用CPU也会切换
提升了效率,最大限度的使用CPU
如果是一个IO密集型进程,来回切换提升效率
如果是一个计算密集型,来回切换降低效率
第三代广泛采用了必须的保护硬件(程序之间的内存彼此隔离)之后,第三代计算机应用而生
每个人占用计算机的资源是有限的
多个(少于10个)共同使用一个计算机主机
第四代计算机:1980~至今

进程的理论

1.串行:所有的任务一个一个的完成
2.并行:多个CPU执行多个任务,真正的同时完成
3.并发:一个CPU执行多个任务,看起来像是同时完成
4.阻塞:CPU遇到IO就是阻塞
5.非阻塞:没有IO就是没有阻塞
6.进程的创建:
    1.一个子进程必须依赖于一个主进程才可以开启
    2.一个主进程可以开启多个子进程
    3.unix: fork创建子进程.
    4.unix(linux,mac): 创建一个子进程会完完全全复制一个主进程所有的资源,初始资源不变.
    5.windows: 操作系统调用CreateProcess 处理进程的创建.
    6.windows:创建一个子进程,会copy主进程所有的资源,但是会改变一些资源.
7.进程的状态:运行阻塞就绪

多进程

原文地址:https://www.cnblogs.com/zhangshan33/p/11379431.html