python 32 操作系统与进程
1. 操作系统
 管理、控制、协调计算机硬件与软件资源的计算机程序。
1.1 作用
- 将一些对硬件操作的复杂、丑陋的接口,变成简单、清晰的接口。
- 将多个进程对硬件资源(cpu)的竞态请求变得有序化、合理化。
 
1.2 操作系统的发展
 linux或windows的源代码有五百万行数量级。
计算机发展史:
- 第一代:电子管计算机(1946——1958年),真空电子管,机器语言编写。 -  优点:个人能够独享资源; 
 缺点: 体积大,功耗高,速度慢,操作繁琐,串行执行。
- 第二代:晶体管计算机(1958年—1964年)存储与磁盘,批处理系统 -  优点:批处理,节省机时; -  缺点:人参与控制,串行执行,统一规划到一批作业中。 
- 第三代:集成电路计算机(1964年—1970年):多道程序系统 -  背景:1. 集成电路:把所用的硬件变小,线路板。2.不同生产线不兼容,需合并兼容。 - 多道程序系统: - 空间上的复用:将内存分区域,一个内存可以同时加载多个进程。
- 时间上的复用:实现将cpu在多个进程之间来回切换,并且保留状态。
 
 -  几乎所有的程序又有IO阻塞;同时加载到内存3个进程,每个进程都有阻塞情况,只要cpu运行一个进程遇到IO阻塞时,会立马切换,长时间占用cpu也会切换。 这样能够提升效率,最大限度的使用cpu。 -  如果时一个IO密集型进程,来回切换提升效率; -  如果是一个计算密集型,来回切换降低效率。 -  再加上计算机采用了必须的保护硬件(程序之间的内存彼此隔离)之后,第三代计算机应用而生。(分时系统) - 特点:系统化、标准化。 
- 空间上的复用:将内存分区域,一个内存可以同时加载多个进程。
- 第四代:大规模集成电路(1970年—至今) -  集成度更高,体积小,使用方便。 
2. 进程的理论
2.1 相关名词
程序:一堆静态的代码。
进程:程序的运行过程、任务。 是由操作系统操控调用交与cpu运行。
一个程序可以开启多个进程。
串行:所有的任务一个接一个去完成。
并行:多个cpu执行多个任务,真正的同时完成。
并发:一个cpu完成多个任务,看起来像是同时完成。
阻塞:cpu遇到IO就是阻塞。
非阻塞:没有IO就是非阻塞。
2.2 进程的创建
 新的进程创建都是由一个已存在的进程执行调用创建的。
 一个主进程可以开启多个子进程;
 一个子进程必须依赖主进程才可以开启。
Unix: 由fork创建子进程。linux,mac基于Unix: 创建一个子进程会完完全全复制一个主进程所有的资源,初始资源不变.
Windows:操作系统调用CreateProcess 处理进程的创建。创建一个子进程,会copy主进程所有的资源,但是会改变一些资源。
2.3 进程的状态:
 运行、阻塞、就绪三种状态。

python 32 操作系统与进程的更多相关文章
- 33.python之操作系统,进程,线程
		转载:https://www.cnblogs.com/yuanchenqi/articles/6248025.html 操作系统 一 为什么要有操作系统? 现代计算机系统是由一个或者多个处理器,主存, ... 
- python 操作系统和进程
		一. 操作系统介绍 多道程序系统 多道程序设计技术 所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行.即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种 ... 
- 操作系统/应用程序、操作中的“并发”、线程和进程,python中线程和进程(GIL锁),python线程编写+锁
		并发编程前言: 1.网络应用 1)爬虫 直接应用并发编程: 2)网络框架 django flask tornado 源码-并发编程 3)socketserver 源码-并发编程 2.运维领域 1)自动 ... 
- day 32 操作系统、线程和进程(GIL锁)
		一.操作系统/应用程序 a. 硬件 - 硬盘 - CPU - 主板 - 显卡 - 内存 - 电源 ... b. 装系统(软件) - 系统就是一个由程序员写出来软件,该软件用于控制计算机的硬件,让他们之 ... 
- Python之线程、进程和协程
		python之线程.进程和协程 目录: 引言 一.线程 1.1 普通的多线程 1.2 自定义线程类 1.3 线程锁 1.3.1 未使用锁 1.3.2 普通锁Lock和RLock 1.3.3 信号量(S ... 
- 在Python程序中的进程操作,multiprocess.Process模块
		在python程序中的进程操作 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起 ... 
- python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)
		昨日内容回顾 操作系统纸带打孔计算机批处理 —— 磁带 联机 脱机多道操作系统 —— 极大的提高了CPU的利用率 在计算机中 可以有超过一个进程 进程遇到IO的时候 切换给另外的进程使用CPU 数据隔 ... 
- python(40)- 进程、线程、协程及IO模型
		一.操作系统概念 操作系统位于底层硬件与应用软件之间的一层.工作方式:向下管理硬件,向上提供接口. 操作系统进行进程切换:1.出现IO操作:2.固定时间. 固定时间很短,人感受不到.每一个应用层运行起 ... 
- Python程序中的进程操作--—--开启多进程
		Python程序中的进程操作-----开启多进程 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创 ... 
随机推荐
- C#写好的类库dll在别人调用的时候也能看到注释的方法
			1.用///的方法添加注释 2.项目的属性里面,要选上"生成XML注释文档" 菜单 Project -> 'xxxx' Properties -> Build -> ... 
- Linux vim环境设置
			//vim /etc/vimrc(管理员权限) 1. 显示行号: set number 或者 set nu 不显示行号: set nonu 2.自动缩进: set autoindent 3.C语言自 ... 
- 关于Spring的JDBC连接mysql(与传统jdbc比较)
			Spring的jdbc与Hibernate,Mybatis相比较,功能不是特别强大,但是在小型项目中,也到还是比较灵活简单. 首先可以看看一下传统的jdbc是如何操作的呢 传统JDBC 首先呢先要创建 ... 
- mongodb的索引原理
			首先说一下为什么要有索引,大家都知道mongdb是非关系型文档类型数据库,用过的人都有同一种感受,查询的效率太低,当你想提高查询效率的时候可以就需要使用索引了. 哈哈,本来想写一篇的,在网上看到了一篇 ... 
- MYSQL A、B表数组关联查询
			最终结果: 数据库表 A表: B表: 操作步骤 主要关键字:FIND_IN_SET.GROUP_CONCAT.LEFT JOIN.GROUP BY 第一步:left join 连接AB表并通过 fin ... 
- Pivotal:15分钟部署你的应用
			“ 本篇文章介绍的是PaaS平台Pivotal Cloud Foundry(以下简称PCF)的初步使用,相比于传统的IaaS平台(比如阿里云),PCF可实现快速迭代开发与部署,让您专注于业务开发.” ... 
- chapter01作业
			1. 请用命令查出ifconfig命令程序的绝对路径 [root@localhost chen]# which ifconfig /usr/sbin/ifconfig 2.请用命令展示以下命令哪些是内 ... 
- 【Android】Field requires API level 4 (current min is 1): android.os.Build.VERSION#SDK_INT
			刚遇到了这个问题: Field requires API level 4 (current min is 1): android.os.Build.VERSION#SDK_INT 解决方法: 修改 A ... 
- 二、Markdown基本语法
			目录 2.1 标题 一级标题 二级标题 三级标题 2.2 加粗 2.3倾斜 2.4 高亮 2.5 上标 2.6 下标 2.7 代码引用(>式) 2.8 代码引用(```式) 2.9 代码引入(` ... 
- 大型系列课程之-七夕告白之旅vbs篇
			也许,世间所有的美好的东西,都是需要仪式感的,遇到了一年一度的七夕节,怎么过这个节日,成了很多心中有爱的人关注的事情,七夕不浪漫,人间不值得,七夕,发源于中国,这个美好的节日,来自动人的神话故事传说牛 ... 
