2. 处理机管理
3. 设备管理
4. 文件管理
5. 用户接口
是管理和控制计算机系统中各种硬件和软件资源、合理地组织计算机工作流程的系统软件,是用户与计算机之间的接口。
在内存中同时存放多道程序,在管理程序的控制下交替执行,这些作业共享CPU和系统其他资源。
![这里写图片描述](https://img-blog.csdn.net/20180611133851521)
把处理机运行时间分成时间片,按时间片轮转的方式,把处理机分配给各联机作业使用。允许多个用户与计算机直接交互。
系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。提供即时响应和高可靠性,响应时间快,可以在毫秒级甚至微秒级立即处理。
并发
并发是指两个或多个事件在同一时间间隔内发生。
微观上还是程序在分时地交替执行。
共享
共享是指系统中的资源可供内存中多个并发执行的进程共同使用。
互斥共享方式
如打印机、磁带机。在一段时间内只允许一个进程访问该资源。
同时访问方式
如磁盘设备
虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。比如说虚拟处理器,虚拟内存,虚拟外部设备
异步
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
操作系统最基本的特征是并发和共享,两者互为存在条件。
进程是指一个具有独立功能的程序对某个数据集在处理机上的执行过程和分配资源的基本单位。
引入进程的概念,以便更好地描述和控制程序的并发执行。
程序封闭性是指进程执行的结果只取决于进程本身,不会受外界影响。
进程通常由程序、数据集合和进程控制块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方式的特点:
通道控制方式
文章浏览阅读906次。可编程USB转UART/I2C/SMBusS/SPI/CAN/1-Wire适配器USB2S(USB To Serial ports)是多种数字接口物理层协议转发器,广泛应用于电子设备开发测试、工业数字接口转换、数字接口学习验证等领域。 支持嵌入程序开发自由 制定 转发透传逻辑,可实现Windows/Android/Wince indows/Android/Wince 操作系统 USB接口与 串行接口以及串行接口之间的双向通讯,还可用于脉冲计数字示波器、电压比较器。广泛应用于电子设备开发测试、工业数字接_i2c转usb转换原理电路图
文章浏览阅读2.3k次,点赞5次,收藏35次。目录1 简介1.1 图像风格快速迁移1.2 图像风格融合1.3 图像风格融合与快速迁移2 数据集3 模型结构3.1 损失函数网络3.2 图像生成网络4 代码讲解4.1 代码结构4.2 核心代码forward.py文件backward.py文件test.py文件app.py文件5 实验环境及源码下载1 简介图像风格融合与快速迁移分为风格融合和风格快速迁移两步B站图像风格融合与快速迁移讲解视频1.1 图像风格快速迁移将一个图像的风格迁移到另一张图片上。原始图像风格迁移技术与快速图像风格迁移技术对比_风格融合网络
文章浏览阅读572次。一、实验目的 (1)加深对线性相位FIR数字滤波器特性的理解。 (2)掌握线性相位滤波器符幅特性和零极点分布的研究方法。 (3)了解用MATLAB研究线性相位滤波器特性时程序编写的思路和方法。 二、实验原理 1.线性相位FIR滤波器的特性 与IIR滤波器相比,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)长度为N,其系统函..._线性相位fir滤波器的零点分布。(已知一个零点求另外3个零点)
文章浏览阅读2.1k次,点赞2次,收藏2次。什么是JSTLJSTL全称JavaServer Pages Tag Library Jsp标准标签库该标签库是由Apache组织提供的免费开源的jsp标签JSTL是干什么用的?为了简化和替换jsp页面上的java代码 因为有时候我们不得不需要在jsp页面加入java代码 ,但是加入java代码以后会使前端人员看不懂,不能很好的一起协作完成项目,并且后期维护的时候换了其他维护人员也会造成代码阅读的不方便,但是如果加入标签的话,前端人员就能很快看出来这段代码的作用,并且对其进行美化操作之类的协作。_jstl
文章浏览阅读1k次。FOREIGN KEY约束_创建表sql语句foreign关键字
文章浏览阅读1.1k次。usleep() :将进程挂起一段时间, 单位是微秒(us)(百万分之一秒);sleep():暂停的单位是秒,而不是毫秒. --LinuxSleep():暂停的单位是毫秒,不是秒,(其中"S"是大写) --Windowusleep函数在Linux系统中两个函数头文件都是: unistd.h 语法: void usleep(int micro_seconds); 返回值: 无 内容说明:本函数可暂时使程序停止执行。参数 micro_seconds 为要暂停的微秒数(us)。_linux usleep 头文件
文章浏览阅读107次。遇到了IE6 select遮挡div的bug,这个bug表现为页面有浮动元素(某个div元素)在select上面时,在IE6里面select总是显示在这个浮动元素上方,该元素z-index的值多大都没有作用。解决的思路是:IE6中iframe可以覆盖select,而div可以覆盖iframe,所以解决办法就是使用iframe元素包裹或者覆盖select元素或浮动元素,或者在selec..._el-select 的el-option被压盖问题z-index都不行
文章浏览阅读4k次。编译须知:1.本次编译平台Ubuntu18.04。使用的虚拟机来完成的源码编译,本次编译的是android8.1版本。2.虚拟机的虚拟硬盘最好在150g以上,我的虚拟中分配了268g内存,只安装了Android编译需要的库,编译完Android磁盘占用54%,环境搭建1.安装虚拟机Ubuntut虚拟机,为了方便查找编译过程中的资料,我选择了Ubuntu18.4的版本ubu..._android8.1 编译
文章浏览阅读2.3k次。经典背包问题3——背包问题求方案数 、背包问题求具体方案1. 背包问题求方案数2. 背包问题求具体方案1. 背包问题求方案数有 N 件物品和一个容量是 V的背包。每件物品只能使用一次。第 i件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 最优选法的方案数。注意答案可能很大,请输出答案模 109+7的结果。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N行,每行两个整数 vi,wi,用空格隔_背包问题求方案数
文章浏览阅读1.2k次。一下是个人理解 如有错误请指出 谢谢! 现学现卖0.0created:html加载完成之前,执行。执行顺序:父组件-子组件mounted:html加载完成后执行。执行顺序:子组件-父组件methods:事件方法执行watch:watch是去监听一个值的变化,然后执行相对应的函数。computed:computed是计算属性,也就是依赖其它的属性计算所得出最后的值,定义起来像函数,用起来想属性 意思就是调用不加括号简单写一下var vm = new Vue({ el:"#app",
文章浏览阅读432次。模板导出Excel导入导出是一般数据统计中常用到的一个功能;那么如何去实现导出数据呐!我们来看一下:页面:页面通常就是一个想这样的导出按钮;点击按钮就触发跳转: function exportExcel() {window.open('@Url.Content("~/Main/ExportARData")');}跳转到指定控制器方法上面:ExportARData到了控制器,我们又可以分为3个块来看;查出要导出的数据;二.我们先把要导出的字段查出来;然后打开我们需.._如何用单片机导出表格文件
文章浏览阅读240次。我一直在努力使我的vuejs应用程序与SSR功能良好,但我的所有尝试都失败了 . 我真的需要帮助 .请注意,我使用普通的js文件,而不是使用es6的.vue文件,并且需要使用webpack require函数的html模板 .该应用程序在开发模式下工作正常,但是,当我使用'vue-server-renderer'开始执行它并转到任何路由时,将抛出此错误:错误:渲染函数或模板未在组件中定义:在pre..._vue-server-renderer\build.dev.js not supported