2. 处理机管理
3. 设备管理
4. 文件管理
5. 用户接口
是管理和控制计算机系统中各种硬件和软件资源、合理地组织计算机工作流程的系统软件,是用户与计算机之间的接口。
在内存中同时存放多道程序,在管理程序的控制下交替执行,这些作业共享CPU和系统其他资源。

把处理机运行时间分成时间片,按时间片轮转的方式,把处理机分配给各联机作业使用。允许多个用户与计算机直接交互。
系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。提供即时响应和高可靠性,响应时间快,可以在毫秒级甚至微秒级立即处理。
并发
并发是指两个或多个事件在同一时间间隔内发生。
微观上还是程序在分时地交替执行。
共享
共享是指系统中的资源可供内存中多个并发执行的进程共同使用。
互斥共享方式
如打印机、磁带机。在一段时间内只允许一个进程访问该资源。
同时访问方式
如磁盘设备
虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。比如说虚拟处理器,虚拟内存,虚拟外部设备
异步
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
操作系统最基本的特征是并发和共享,两者互为存在条件。
进程是指一个具有独立功能的程序对某个数据集在处理机上的执行过程和分配资源的基本单位。
引入进程的概念,以便更好地描述和控制程序的并发执行。
程序封闭性是指进程执行的结果只取决于进程本身,不会受外界影响。
进程通常由程序、数据集合和进程控制块PCB三部分组成。程序和它操作的数据是进程存在的静态实体,而专门的数据结构PCB用来描述进程当前的状态、本身的特性等。
当进程被中断时,操作系统会把程序计数器和处理器寄存器(上下文数据)保存在PCB中的对应位置,进程状态已被改变为其他的值,例如阻塞态或就绪态。
PCB是进程存在的唯一标志。故操作系统是根据进程控制块来对并发执行的进程进行控制和管理。
PCB内含的数据结构主要有:进程标志信息、进程控制信息、进程资源信息、CPU现场信息。
每个进程包含独立的地址空间,进程各自的地址空间是私有的,只有执行自己地址空间中的程序,且只能访问自己地址空间中的数据,相互访问会导致指针的越界错误。
对进程的管理和控制功能是通过执行各种原语实现的,如创建原语。
1、给新进程分配一个唯一的进程标识符
2、给进程分配空间
3、初始化进程控制块
4、设置正确的连接
5、创建或扩充其他数据结构
引入线程,是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。
线程最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元。
线程共享进程拥有的全部资源。
线程不拥有系统资源,但是它可以访问进程所拥有的系统资源。
线程没有自己独立的地址空间,他共享他所属的进程的空间。
先来先服务调度算法(FCFS)
短作业优先(SJF)调度算法
从后备队列中选择一个或若干个估计运行时间最短的作业,将他们调入内存运行。
短进程优先(SPF)调度算法
从就绪队列中选择一个估计运行时间最短的进程,将处理机分配给它,使之立即执行。
优先级调度算法
根据能否抢占进程,可将调度算法分为:
根据进程创建后其优先级是否可以改变,分为:
高响应比优先调度算法
时间片轮转调度算法
多级反馈队列调度算法
我们把一次仅允许一个进程使用的资源称为临界资源。
同步亦称直接制约关系,他是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。
中断屏蔽方法
当一个进程正在使用处理机执行它的临界区代码时,要防止其他进程再进入其临界区访问的最简单方法是禁止一切中断发生。因为CPU只在中断发生时进行进程切换,这样屏蔽中断就能保证当前运行进程将临界区代码顺利地执行完。
硬件指令方法
信号量只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作“和”V操作“。
原语是指完成某种功能且不被分割不被中断执行的操作序列,通常可由硬件来实现完成不被分割执行特性的功能。
管程是由一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。
所谓死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。
设置某些限制条件,破坏产生死锁的四个必要条件中的一个或几个,以防止发生死锁。
在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而避免死锁。
银行家算法
通过系统的检测机构及时地检测出死锁的发生,然后采取某种措施解除死锁。
可以有大小相等的分区和大小不等的分区
会有内部碎片
会有外部碎片,可以通过紧凑技术来解决(就是操作系统不时地对进程进行移动和整理,需要动态重定位寄存器支持。
局部性原理
如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。
所以时间局部性是通过将进来使用的指令和数据保存到高速缓存存储器中。
一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问。
所以空间局部性通常是使用较大的高速缓存,并将预取机制集成到高速缓存控制逻辑中实现。
文件是以计算机硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。
在用户进行的输入、输出中,是以文件为基本单位。
无结构文件是最简单的文件组织形式。无结构文件将数据按顺序组织成记录并积累保存,他是有序相关信息项的集合,以字节为单位。
有结构文件(记录式文件)
文件中的记录一个接一个地顺序排列,记录通常是定长的,可以顺序存储或以链表形式存储。
1. 串结构
记录之间的顺序与关键字无关,通常按照存入时间的先后排列。
2. 顺序结构
指文件中的所有记录按关键字顺序排列。
索引文件
索引顺序文件是顺序和索引两种组织形式的结合。索引顺序文件将顺序文件中的所有记录分为若干组,为顺序文件建立一张索引表,在索引表中为每组中的第一个记录建立一个索引项。
直接文件或散列文件
给定记录的键值或通过Hash函数转换的键值直接决定记录的物理地址。
文件控制块。FCB用来存放控制文件所需要的各种信息的数据结构。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。
FCB主要包含以下信息:
索引节点
文件系统类型:FAT32、NTFS、ext2、ext3、ext4
程序直接控制方式
中断驱动方式
允许I/O设备主动打断CPU的允许并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作。
DMA方式
DMA方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放”CPU。DMA方式的特点:
通道控制方式
文章目录题目描述输入描述输出描述输入输出说明原题算法分析解题标程题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。输入描述输入的第一行为一个单独的整数n(n ≤ 20)表示单词数,以下n行每行有
上一篇笔记的pygame游戏对敌人和白云的移动速度使用了随机函数randint(),游戏体验不是太好。如果是按概率随机选取设置速度的话,游戏体验会好一些。据我了解,random.choice(seq)是等概率选取一个,不是我想要的。而 numpy.random.choice(seq, p, k)是按概率随机重复选取多个,这正是我想要的。但是,我不想为这么一个函数引入巨大的numpy库...
一、jenkinsJenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。大家在工作中,应该都有使用过jenkins 自动化打包或发布,就比如我经常用到的就是将开发的项目自动化打包成docker镜像,实现一键打包,大大减少了我们的工作量,下面就一起学习下,jenkins 的安装与使用。二、基于docker 搭建 jenkins本篇使用docker 和 docker-compose 对jenkins进行
把多个excel文件合并成一个文件1、获取文件目录的文件名称和路径2、遍历每个文件读取3、导出合并后csv文件import osimport pandas as pd# 将文件读取出来放一个列表里面pwd = 'D:/Users/Desktop/库存' # 获取文件目录# 新建列表,存放文件名file_list = []# 新建列表存放每个文件数据(依次读取多个相同结构的Excel文件并创建DataFrame)dfs = []for root,dirs,files in os.wal
1.AssetBundle的定义把一些可以下载的内容放在AssetBundle里面,可以减少安装包的大小压缩包可以使用LZMA和LZ4压缩算法,减少包的大小,更快的进行网络传输什么是AssetBundle?可以称之为压缩包,里面压缩了多个文件。两类:serialized file and resource filesserialized file:资源被打碎放在一个对象中,最后...
一、神经网络背景神经网络的灵感来源与人的大脑。实验证明大脑利用同一个学习算法实现了听觉、视觉等等所有的功能,这也是神经网络算法美好的愿景。神经网络算法在八十到九十年代被广泛使用过, 20世纪90年代,各种各样的浅层机器学习模型相继被提出,例如支撑向量机(SVM,Support Vector Machines)、 Boosting、最大熵方法(如LR,Logistic Regress
spring shiro基础学习下载并简单配置maven注意:配置maven的一些注意事项在eclipse下纯空配置spring简单框架注意:因为Thymeleaf版本问题在建立html页面的时候如果是3,0以下的需要在<meta charset="UTF-8">中加结束语,不过建议进行升级在pom.xml文件下按如下修改<properties> <java.version>1.8</java.version> <thyme
背景: win8.1, idle ->python 3.9.7自带, openpyxl 3.0.9 openpyxl 由pip install openpyxl直接安装,版本默认现象: 1. 用openpyxl 中 worksheet的 rows属性,可以显示其中单元格的内容。 如果单元格不是从第一行、第一列开始时,在显示内容的循环中,总会有在没有内容的单元格处输出为None。 2. 查询了 worksheet.rows()的使用方法,此函数没有用...
SUN工作站在网络中的深入应用(转)[@[email protected]] 目前建立在客户机/服务器(C/S)网络体系结构上的应用系统越来越多,技术上也越来越成熟。具有多用户多任务网络特性的UNIX操作系统以其高可靠性、高伸缩性、高开放性的特点...
手把手教你配置CUDA, cuDNN-十分钟配置本地CUDA, cuDNN
他被誉为支付宝技术平台的奠基人之一,但是他却说“这还不是我心中最完美的架构”;他曾是支付宝史上最危机关头——停机发布 17 小时的救火大队长,但是在他看来,只是做了很多”拧螺丝“的事情。他行事低调但是却信奉“此时此地,非我莫属”的豪气;他在支付宝有着灿烂无比的职业履历却仅仅认为自己是没有掉队的那个人。他是程立(鲁肃),是我们本季《十年》技术专题纪录片...
文章目录GD32与STM32异同1. 相同点2. 外围硬件区别3. 内部结构差别4. 功耗区别(以128k以下容量的作为参考)5. 内部FLASH 区别使用STM32库开发时钟配置区别1. 晶振起振区别描述解决方法2. 部分客户使用有源晶振出现问题,在 GD32F103 小容量产品,发现会在 MCU 的复 位管脚一直把电平拉到0.89V,电平不能保持在高电平描述解决方法3. GD32 MCU 主频支持 108MHz 高性能,在代码移植方面需要注意事项1. 以72MHz运行2. 以108MHz运行(方法一)原