操作系统
操作系统的特征:并发性、共享性、虚拟性、不确定性
操作系统的功能:
-
- 进程管理实质上是对处理机的执行“时间”进行管理,采用多道程序等技术将CPU的时间合理的分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度
-
- 存储管理对主存储器“空间”进行管理,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充
-
- 文件管理主要包括文件存储空间管理、目录管理、文件的读/写管理和存取控制
-
- 设备管理实质是对硬件设备的管理,包括对输入/输出设备的分配、启动、完成和回收
-
- 作业管理包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等
操作系统的分类:
-
- 批处理操作系统单道批处理操作系统是一种早期的操作系统,该系统可以提交多个作业,“ 单道” 的含义是指一次只有一个作业装入内存执行。当一个作业运行结束后,随即自动调入同批的下一个作业,从而节省了作业之间的人工干预时间,提高了资源的利用率。多道批处理操作系统允许多个作业装入内存执行,在任意一个时刻,作业都处于开始点和终止点之间。每当运行中的一个作业由于输入/输出操作需要调用外部设备时,就把CPU交给另一个等待运行的作业,从而将主机与外部设备的工作由串行改变为并行,进一步避免了因主机等待外设完成任务而浪费宝贵的CPU时间。多道批处理系统主要有3个特点:多道、宏观上并行运行、微观上串行运行。
-
2. 分时操作系统在分时操作系统中,一个计算机系统与多个终端设备连接。分时操作系统是将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。分时系统主要有4个特点:多路性、独立性、交互性和及时性。
-
3. 实时操作系统实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。实时系统分为实时控制系统和实时信息处理系统。实时控制系统主要用于生产过程的自动 控制,例如数据自动釆集、武器控制、火炮自动控制、飞机自动驾驶和导弹的制导系统等。实时信息处理系统主要用于实时信息处理,例如飞机订票系统、情报检索系统等。
-
4. 网络操作系统网络操作系统是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。因此,网络操作系统的功能主要包括高效、可靠的网络通信;对网络中共享资源(在LAN中有硬盘、打印机等)的有效管理;提供电子邮件、文件传输、共享硬盘和打印机等服务;网络安全管理;提供互操作能力。网络操作系统可分为如下三类。(1)集中模式。集中式网络操作系统是由分时操作系统加上网络功能演变而来的,系统的基本单元由一台主机和若干台与主机相连的终端构成,将多台主机连接起来形成了网络,信息的处理和控制是集中的。UNIX就是这类系统的典型例子。(2)客户端/服务器模式。这是流行的网络工作模式,该种模式网络可分为服务器和客户端。服务器是网络的控制中心,其任务是向客户端提供一种或多种服务,服务器可有多种类型,如提供文件/打印服务的文件服务器等。客户端是用于本地处理和访问服务器的站点,在客户端中包含了本地处理软件和访问服务器上服务程序的软件接口。(3)对等模式(Peer-to-Peer)模式。在采用这种模式的操作系统网络中,各个站点是对等的。它既可作为客户端去访问其他站点,又可作为服务器向其他站点提供服务,在网络中既无服务处理中心,也无控制中心,或者说,网络的服务和控制功能分布在各个站点上。可见,该模式具有分布处理及分布控制的特征。
-
5. 分布式操作系统分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。通常,为分布式计算机系统配置的操作系统称为分布式操作系统。
-
6. 微机操作系统微型计算机操作系统简称微机操作系统,常用的有Windows、Mac OS, Linux。
-
7. 嵌入式操作系统嵌入式操作系统运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制。其主要特点如下:(1)微型化。从性能和成本角度考虑,希望占用的资源和系统代码量少,如内存少、字长短、运行速度有限、能源少(用微小型电池)。(2)可定制。从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。(3)实时性。嵌入式操作系统主要应用于过程控制、数据釆集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高。(4)可靠性。系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施。(5)易移植性。为了提高系统的易移植性,通常采用硬件抽象层(Hardware Abstraction Level,HAL)和板级支撑包(Board Support Package, BSP)的底层设计技术。嵌入式实时操作系统有很多,常见的有VxWorks、jxClinux、PalmOS、WindowsCE、|iC/OS-II和eCos等。
进程管理
PCD的含义
进程的组成:进程控制块PCB(PCB是进程存在的唯一标识)、程序、数据
进程的状态
进程的状态:
就绪状态:进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行
运行状态:进程处于就绪状态被调度后,进程进入执行状态
等到状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用
进程的前驱图:
前驱图是一个有向无循环图,记为DAG。用于这种图可以描述多个程序或进程之间的执行顺序和并行关系。
前驱图中不能存在循环,否则必然会产生不可能实现的前驱关系
程序顺序执行时的主要特征包括顺序性、封闭性和可再现性。
进程的资源图:
image-20211213173147152
程序并发执行等特征:
(1)失去了程序的封闭性。
(2)程序和机器的执行程序的活动不再一一对应。
(3)并发程序间的相互制约性。
化简资源分配图:
第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞(“不阻塞”即:系统有足够的空闲资源分配给它)的
第二步:把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来
第三步:看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。
第四步:最后,所有的资源和进程都变成孤立的点。这样的图就叫做“可完全简化”。
如果一个
图可完全简化,则不会产生死锁
;如果一个图不可完全简化(即:图中还有“边”存在),则会产生死锁
。这就是“死锁定理”。
原语(Primitive)是指由若干条机器指令组成的,用于完成特定功能的程序段。原语的特点是在执行时不能被分割,即原子操作要么都做,要么都不做。内核中所包含的原语主要有进程控制原语、进程通信原语、资源管理原语以及其他方面的原语。属于进程控制方面的原语有进程创建原语、进程撤销原语、进程挂起原语、进程激活原语、进程阻塞原语以及进程唤醒原语等。不同的操作系统内核所包含的功能不同,但大多数操作系统的内核都包含支撑功能和资源管理的功能。
同步和互斥
进程同步也是进程之间的直接制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作。
进程互斥是进程之间的间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待。只有当使用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。
常见的进程同步与互斥机制:
-
• 信号量与PV操作
-
• P 操作:将信号量值减 1,表示申请占用一个资源。如果结果小于 0,表示已经没有可用资源,则执行 P 操作的进程被阻塞。如果结果大于等于 0,表示现有的资源足够你使用,则执行 P 操作的进程继续执行。
-
• V 操作:将信号量值加 1,表示释放一个资源,即使用完资源后归还资源。若加完后信号量的值小于等于 0,表示有某些进程正在等待该资源,由于我们已经释放出一个资源了,因此需要唤醒一个等待使用该资源(就绪态)的进程,使之运行下去。
-
• 管道通信
-
• 连接一个读进程和一个写进程,以实现进程之间的通信的共享文件
-
• 共享存储
-
• 相互通信的进程共享某些数据结构实现进程间的通信
-
• 消息传递
-
• 进程间的数据交换以消息为单位,直接利用系统提供的一组通信命令来通信
-
• 管程其基本思路是釆用资源集中管理的方法,将系统中的资源用某种数据结构抽象地表示出来。由于临界区是访问共享资源的代码段,建立一个管程管理进程提出的访问请求。
死锁四要素:
-
- 资源互斥
-
- 每个进程占有资源并等待其他资源
-
- 系统不能剥夺进程资源
-
- 进程资源图是一个环路
线程
线程是系统调度的最小单位,进程是分配资源的最小单位,线程可以共享进程的公共数据、全局变量、代码、文件等资源。
存储管理
存储器管理的主要功能包括主存空间的分配和回收、 提高主存的利用率、 扩充主存、 对主存信息实现有效保护。
页式存储
优点:利用率高、碎片小、分配及管理简单
缺点:增加了系统开销、可能产生抖动
页表:存储逻辑地址和物理地址之间的映射关系
快表:将页表存储于Cache中
慢表:将页表存储于内存中
文件管理
一片磁盘分为若干个磁道,每个磁道又分为各个扇区。扇区是磁盘存储的最小数据块,大小一般是 512 字节。
磁头要想读取某个文件,必须在电机驱动下,先找到对应的磁道,再等磁盘转到对应扇区才行,一般会有十几毫秒的延迟,这就让机械硬盘在读取分散于磁盘各处的数据时,速度将大幅降低。
题外话
“不是只有程序员才要学编程?!”
认真查了一下招聘网站,发现它其实早已变成一项全民的基本技能了。
连国企都纷纷要求大家学Python!
世界飞速发展,互联网、大数据冲击着一切,各行各业对数据分析能力的要求越来越高,这便是工资差距的原因,学习编程顺应了时代的潮流。
在这个大数据时代,从来没有哪一种语言可以像Python一样,在自动化办公、爬虫、数据分析等领域都有众多应用。
更没有哪一种语言,语法如此简洁易读,消除了普通人对于“编程”这一行为的恐惧,从小学生到老奶奶都可以学会。
《2020年职场学习趋势报告》显示,在2020年最受欢迎的技能排行榜,Python排在第一。
它的角色类似于现在Office,成了进入职场的第一项必备技能。
如果你也想增强自己的竞争力,分一笔时代的红利,我的建议是,少加点班,把时间腾出来,去学一学Python。
因为,被誉为“未来十年的职场红利”的Python,赚钱、省钱、找工作、升职加薪简直无所不能!
目前,Python人才需求增速高达**174%,人才缺口高达50万,**部分领域如人工智能、大数据开发, 年薪30万都招不到人!
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板
