python可以实现操作系统管理_Python并发编程 —— 操作系统基础

1、手工操作 —— 穿孔卡片

1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。

特点:

(1)用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。

(2)CPU 等待手工操作。CPU的利用不充分。

2、批处理 —— 磁带存储和批处理系统

批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令)。

联机批处理系统 ——> 脱机批处理系统

特点:

​(1)它极大缓解了人机矛盾及主机与外设的矛盾。

(2)每次主机内存中仅存放一道作业,每当它运行期间发出输入/输出(I/O)请求后,高速的CPU便处于等待低速的I/O完成状态,致使CPU空闲。

3、多道程序系统

第一次提出了多个程序可以同时在计算机中被计算

​·遇到IO就让出CPU

​·把CPU让给其他程序,让其他程序能够使用CPU

​·CPU的让出这件事,占用时间

​·两个程序之间来回在CPU上切换,不会发生混乱

​每个程序有独立的内存空间

​每个程序在切换的前后会把当前程序的状态记录下来

多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。

多道程序系统的出现,标志着操作系统渐趋成熟的阶段,先后出现了作业调度管理、处理机管理、存储器管理、外部设备管理、文件系统管理等功能。

由于多个程序同时在计算机中运行,开始有了空间隔离的概念,只有内存空间的隔离,才能让数据更加安全、稳定。

除了空间隔离之外,多道技术还第一次体现了时空复用的特点,遇到IO操作就切换程序,使得cpu的利用率提高了,计算机的工作效率也随之提高。

特点:

(1)多道:系统内可同时容纳多个作业。这些作业放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业进入内存运行,运行作业结束、退出运行和后备作业进入运行均由系统自动实现,从而在系统中形成一个自动转接的、连续的作业流。

(2)成批:在系统运行过程中,不允许用户与其作业发生交互作用,即:作业一旦进入系统,用户就不能直接干预其作业的运行。

(3)不提供人机交互能力,给用户使用计算机带来不便。虽然用户独占全机资源,并且直接控制程序的运行,可以随时了解程序运行情况。但这种工作方式因独占全机造成资源效率极低。

CPU计算和不计算(IO)操作:

IO操作(网络操作 \ 文件操作): 输入输出 :相对内存

阻塞:sleep \ input \ recv \ accept \ recvfrom 是不需要CPU参与的

对文件的读取:对硬盘的操作一次读取相当于CPU执行90w条代码

Input :向内存输入数据

读文件\ load \ input \ recv \ recvfrom \ accept \ connect \ close

Ouput :从内存中输出数据

写文件\ dump \ print \ send \ sendto \ accept \ connect \ close

所有的IO操作本质都是文件操作:

input \ print : input是写入文件,然后通过读取文件把输入的内容加载到内存

print是直接写入文件,然后通过文件展示给用户看

socket中的交互方法:都是文件操作

send : 是向缓存文件中写

recv :是从缓存文件中读

也就是说只要涉及到IO操作,至少就是一个0.009s == 就是CPU执行90w条python代码的时间

# 操作系统每秒500000000条指令,一般情况下一句python代码被翻译为5条指令

0.009s

500000000条指令/s /5 = 100000000条python代码/s

0.009s * 100000000 = 900000条python代码

import dis # dis 模块可以查看python代码被翻译为的操作系统指令

a = 1

def func():

global a

a+=1

dis.dis(func)

4、分时系统

分时技术:把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。

若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一作业使用,等待下一轮时再继续其运行。由于计算机速度很快,作业运行轮转得很快,给每个用户的印象是,好象他独占了一台计算机。而每个用户可以通过自己的终端向系统发出各种操作控制命令,在充分的人机交互情况下,完成作业的运行。

特点:

(1)多路性。若干个用户同时使用一台计算机。微观上看是各用户轮流使用计算机;宏观上看是各用户并行工作。

(2)交互性。用户可根据系统对请求的响应结果,进一步向系统提出新的请求。这种能使用户与系统进行人机对话的工作方式,明显地有别于批处理系统,因而,分时系统又被称为交互式系统。

(3)独立性。用户之间可以相互独立操作,互不干扰。系统保证各用户程序运行的完整性,不会发生相互混淆或破坏现象。

(4)及时性。系统可对用户的输入及时作出响应。分时系统性能的主要指标之一是响应时间,它是指:从终端发出命令到系统予以应答所需的时间。

时间片轮转算法:

​时间片到了才让出CPU

​CPU的让出事件占用时间

​减低工作效率,提高了用户体验

5、实时系统

虽然多道批处理系统和分时系统能获得较令人满意的资源利用率和系统响应时间,但却不能满足实时控制与实时信息处理两个应用领域的需求。于是就产生了实时系统,即系统能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件的处理。

特点:

(1)及时响应。每一个信息接收、分析处理和发送的过程必须在严格的时间限制内完成。

(2)高可靠性。需采取冗余措施,双机系统前后台工作,也包括必要的保密措施等。

6、通用操作系统

操作系统的三种基本类型:多道批处理系统、分时系统、实时系统。

通用操作系统:具有多种类型操作特征的操作系统。可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。

7、操作系统的进一步发展

个人计算机操作系统:个人计算机上的操作系统是联机交互的单用户操作系统,它提供的联机交互功能与通用分时系统提供的功能很相似。由于是个人专用,因此一些功能会简单一些。

网络操作系统:在原来各自计算机操作系统上,按照网络体系结构的各个协议标准增加网络管理模块,其中包括:通信、资源共享、系统安全和各种网络应用服务。

分布式操作系统:

​ (1)分布式系统要求一个统一的操作系统,实现系统操作的统一性。

(2)分布式操作系统管理分布式系统中的所有资源,它负责全系统的资源分配和调度、任务划分、信息传输和控制协调工作,并为用户提供一个统一的界面。

(3)用户通过这一界面,实现所需要的操作和使用系统资源,至于操作定在哪一台计算机上执行,或使用哪台计算机的资源,则是操作系统完成的,用户不必知道,此谓:系统的透明性。

(4)分布式系统更强调分布式计算和处理,因此对于多机合作和系统重构、坚强性和容错能力有更高的要求,希望系统有:更短的响应时间、高吞吐量和高可靠性。

8、操作系统的作用

现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。

一般而言,现代计算机系统是一个复杂的系统。

其一:如果每位应用程序员都必须掌握该系统所有的细节,那就不可能再编写代码了(严重影响了程序员的开发效率:全部掌握这些细节可能需要很长很长很长时间....)

其二:并且管理这些部件并加以优化使用,是一件极富挑战性的工作,于是,计算安装了一层软件(系统软件),称为操作系统。它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理刚才提到的所有设备。

总结:

程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以了,应用软件直接使用操作系统提供的功能来间接使用硬件。

精简的说的话,操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。

细说的话,操作系统应该分成两部分功能:

# 一:隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源的更好,更简单,更清晰的模型(系统调用接口)。应用程序员有了这些接口后,就不用再考虑操作硬件的细节,专心开发自己的应用程序即可。

例如:操作系统提供了文件这个抽象概念,对文件的操作就是对磁盘的操作,有了文件我们无需再去考虑关于磁盘的读写控制(比如控制磁盘转动,移动磁头读写数据等细节),

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

例如:很多应用软件其实是共享一套计算机硬件,比方说有可能有三个应用程序同时需要申请打印机来输出内容,那么a程序竞争到了打印机资源就打印,然后可能是b竞争到打印机资源,也可能是c,这就导致了无序,打印机可能打印一段a的内容然后又去打印c...,操作系统的一个功能就是将这种无序变得有序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle经纬度换算成xy坐标,谁有全套经纬度转换成XY坐标的好的软件?

用的实施么地图?标准地形图吗?如果是标准地形图,还是有办法转化的,因为用的是高斯-克吕格投影该投影按照投影带中央子午线投影为直线且长度不变和赤道投影为直线的条件,确定函数的形式,从而得到高斯一克吕格…

数学术语的英汉对照(权威,全面)

abbreviation 简写符号;简写 abscissa 横坐标 absolute complement 绝对补集 absolute error 绝对误差 absolute inequality 绝不等式 absolute maximum 绝对极大值 absolute minimum 绝对极小值 absolute monotonic 绝对单调 absolute value 绝对值 accelerate 加速…

交叉编译ncurses5.6

./configure --hostarm-linux -with-shared -without-debug make

粒子群 多目标 matlab_matlab 粒子群求解三角形垂心位置

续 https://www.toutiao.com/i6766960319995576843/设定三角形A顶点的坐标为 (x1,y1);(x2,y2);(x3,y3);随机初始化;计算得知垂心到三个顶点距离为:R(((x1^2 - 2*x1*x2 x2^2 y1^2 - 2*y1*y2 y2^2)*(x1^2 - 2*x1*x3 x3^2 y1^2 - 2*y1*y3 y3^2)*(x2^2…

php hasmany,浅谈laravel orm 中的一对多关系 hasMany

个人对于laravel orm 中对于一对多关系的理解文章表 article,文章自然可以评论,表 comment 记录文章的评论,文章和评论的关系就是一对多,一篇文章可以有多个评论。 在 comment 表中有字段 article 记录评论所属文章,文…

C类型转换

当执行算术运算时,如果类型不同都会发生类型转换 1、如果整形转换为signed不丢失数据,就转换为signed.否则需要转换为unsigned 如: 一类型为signed int,另一类型为unsigned short,因为signed可以容纳unsigned short的全部值,所以unsigned sho…

python多级字典_Python多层字典取值

#! /usr/bin/python# coding:utf-8"""author:Bingo.hefile: get_target_value.pytime: 2017/12/22"""def get_target_value(key, dic, tmp_list):""":param key: 目标key值:param dic: JSON数据:param tmp_list: 用于存储获取的数…

CSerialPort类定义的消息

CSerialPort类定义的消息 消息名称消息号功能说明WM_COMM_BREAK_DETECTEDWM_USER1检测到输入中断WM_COMM_CTS_DETECTEDWM_USER2检测到CTS(清除发送)信号状态改变WM_COMM_DSR_DETECTEDWM_USER3检测到DSR(数据设置准备就绪)信号状态…

【转】Windows Server2008 R2下安装Oracle 10g

因开发环境需要,在Windows Server 2008 R2 Enterprise64位系统上安装Oracle 10g。去Oracle 官方网站下载了Oracle Database 10g Release 2 (10.2.0.4) for Microsoft Windows Vista x64, Microsoft Windows Server 2008 R2 x64, Windows 7 x64。 可刚执行安装&am…

移植libmxml到(arm-linux)

官方网站 http://www.minixml.org/ 下载源码:mxml-2.6.tar.gz 解压缩: tar -zxvf mxml-2.6.tar 进入目录mxml-2.6后配置属性 ./configure --enable-shared --hostarm-linux make 编译后会出现一个小错误。不用理会,因为目前编译是在A…

mysqlworkbench导入sql文件_将sql脚本文件导入数据库

一、用cmd的调试环境导入.sql文件中的数据:WinR键打开cmd输入:MySQL -u root -p 输入密码:*******进入MySQL后MySQL>show databases; --查看所有数据库MySQL>create database mydatabase; --创建数据库 MySQL>use mydata…

linux创建目录的语句,Linux的 文件 和 目录 管理(基本语句)

包括了文件和目录的创建、删除、修改,权限、压缩、搜索、分区、挂载简单的一些命令:【 pwd 】查看当前所在目录【 cd .. 】上级目录【 cd ~ 】当前用户的家目录【cd -】上次打开目录(回看)【 rmdir 目录名】删除空目录【du -sh 文件或目录】查看文件或目…

win8开发中需要用到一些系统版本之类的统计信息,总结如下。

1.获取软件的版本号,这个比较简单: Package package Package.Current; PackageId packageId package.Id; PackageVersion version packageId.Version; string version String.Format("{0}.{1}.{2}.{3}", version.Major, version.Minor, version.Build…

sql怎么读_大白话讲解脏写、脏读、不可重复读和幻读

一般对于我们的业务系统去访问数据库而言,它往往是多个线程并发执行多个事务的,对于数据库而言,它会有多个事务同时执行,可能这多个事务还会同时更新和查询同一条数据,所以这里会有一些问题需要数据库来解决我们来看看…

Linux显示txt文件,如何在Linux中显示文本文件中的某些行?

sed -n 10000000,10000020p filename你可能能够加快这一点:sed -n 10000000,10000020p; 10000021q filename在这些命令中,选项-n使sed“抑制模式空间的自动打印”. p命令“print [s]当前模式空间”和q命令“立即退出[s] sed脚本而不再处理任何输入……”引号来自sed…

Android上试用Linphone(Free SIP VOIP Client)

1. 下载Linphone apk并且安装到两个Android手机上http://www.linphone.org/eng/download/packages/android.html2. 申请两个免费的SIP帐号进行测试https://www.ekiga.net/3. 在每个Android手机上分别配置Linphone应用程序点击Settings菜单, 在SIP Account界面分别配置如下:User…

greensock包使用

greensock包使用 官网: http://www.greensock.com/tweenlite/ 新的遮罩类:BlitMask类 http://www.snorkl.tv/2011/10/use-blitmasks-wrap-feature-for-easy-bitmap-scrolling-and-looping/ 转载于:https://www.cnblogs.com/tinytiny/archive/2013/01/10/…

esp8266 micropython oled_micropython(4):使用ESP8266 控制 oled 屏幕,并显示 helloworld 字符...

目录前言1,关于esp 8266 和 oled2,使用lib库驱动 1306 4pin led3,总结前言相关micropython 全部分类:https://blog.csdn.net/freewebsys/category_9670462.html本文的原文连接是:https://blog.csdn.net/freewebsys/article/detail…

linphone-android移植

一:到网站上下载linphone-android的源码: http://www.linphone.org/eng/download/git.html linphone-android对应的git地址是: 在虚拟机中敲入如下命令 git clone git://git.linphone.org/linphone-android.git --recursive 记住一定要把rescursive给带上&…

debian 升级linux内核,Debian8升级内核到4.5

本文讲述如何升级Debian8的内核到4.5版本0x01:去linux kernel官网https://www.kernel.org/下载4.5的内核,选择tar.xz格式0x02:想办法把下载好的包弄进你的虚拟机或...直接你的物理机0x03:解压有的朋友可能没见过tar.xz格式的包&am…