![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统os
文章平均质量分 66
959y
奋斗ing
展开
-
java 哲学家就餐模拟
问题描述:一圆桌前坐着5位哲学家,两个人中间有一只筷子,桌子中央有面条。哲学家思考问题,当饿了的时候拿起左右两只筷子吃饭,必须拿到两只筷子才能吃饭。上述问题会产生死锁的情况,当5个哲学家都拿起自己右手边的筷子,准备拿左手边的筷子时产生死锁现象。解决办法:每个哲学家必须确定自己左右手的筷子都可用的时候,才能同时拿起两只筷子进餐,吃完之后同时放下两只筷子。 class philosopher extends Thread{ private String name; private For原创 2021-09-11 13:23:26 · 394 阅读 · 0 评论 -
非连续分配
非连续分配允许一个程序分散地装入到不相邻的内存分区中,根据分区的大小是否固定分为分页存储管理方式和分段存储管理方式。分页存储管理方式中,又根据运行作业时是否要把作业的所有页面都装入内存才能运行分为基本分页存储管理方式和请求分页存储管理方式。基本分页存储管理方式固定分区会产生内部碎片,动态分区会产生外部碎片,这两种技术对内存的利用率都比较低。为了能尽量避免碎片的产生,就引入了分页的思想: 把主存空间划分为大小相等且固定的块,块相对较小,作为主存的基本单位。每个进程也以块为单位进行划分,进程在执行时,以块为原创 2020-12-28 12:25:50 · 546 阅读 · 0 评论 -
文件的逻辑结构
文件分为无结构文件和有结构文件有结构文件又叫记录式文件记录式文件分为定长记录文件和变长记录文件我们生活中大部分都是可变长记录文件。效率高无结构文件无结构文件就是流式文件或者是二进制文件有结构文件有结构文件可分为顺序文件,索引文件和顺序索引文件顺序文件如果是顺序文件的话:记录可以是定长的或者是不定长的,各个记录在物理上可以顺序存储和链式存储顺序结构还可以分为串结构和顺序结构串结构是与关键字没有关系的顺序结构是与关键字有关系的索引文件建立一张索引表:索引表本身就是定长记录.原创 2020-12-28 12:23:58 · 399 阅读 · 0 评论 -
文件管理概述
1.文件中的属性2.文件中的数据是如何组织的3.文件与文件之间是如何组织的4.文件与应用程序的交互5.文件与硬件的交互1.属性1.文件名称2.文件大小3.文件目录4.文件的标识符5.文件的类型6.文件的保护信息2.数据是如何组织的无结构文件:二进制或字符流组成有结构文件:有顺序结构,链式结构等等3.文件与文件通过目录有序的一层一层的组织起来4.与应用程序当我们反键鼠标的时候,创建一个txt文件时候,会调用系统中的create指令,然后如果读取的话会调用read系统调用.原创 2020-09-25 15:56:28 · 445 阅读 · 0 评论 -
内存管理的大概
1.内存空间的分配与回收2.内存空间的扩充1>覆盖技术 2>交换技术 3>虚拟存储技术3.地址转换1>绝对装入 2>静态重定位 3>动态重定位4.存储保护内存保护:方法1:在CPU设置一对上下限寄存器,存储进程的上下限地址 2:设置重定位寄存器和界地址寄存器。覆盖技术缺点为对用户不透明,用于以前的操作系统交换技术...原创 2020-09-11 20:52:22 · 166 阅读 · 0 评论 -
内存覆盖,交换以及连续分配
内存覆盖覆盖的基本思想是:由于程序运行时并非任何时候都要访问程序及数据的各个部分(尤其是大程序),因此可以把用户空间分成一个固定区和若干个覆盖区。将经常活跃的部分放在固定区,其余部分按调用关系分段。首先将那些即将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,替换覆盖区中原有的段。内存交换交换的基本思想是,把处于等待状态 的程序从内存移到辅存,把内存空间腾出来,这一过程又叫换出;把准备好竞争CPU运行的程序从辅存移到内存,这一过程又称为换入。有关交换需要注意以下几个问题:原创 2020-09-11 15:41:22 · 474 阅读 · 0 评论 -
内存管理基本知识-大致
内存管理操作系统对内存的划分和动态分配,就是内存管理的概念。有效的内存管理在多道程序设计中非常重要,不仅方便用户使用存储器、提高内存利用率,还可以通过虚拟技术从逻辑上扩充存储器。内存管理的功能有:内存空间的分配与回收地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理必须提供地址变换功能,把逻辑地址转换成相应的物理地址。内存空间的扩充:利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存。存储保护:保证各道作业在各自的存储空间内运行,互不干扰。程原创 2020-09-11 14:46:04 · 316 阅读 · 0 评论 -
进程调度算法的评判指标
1.CPU利用率2.系统吞吐量3.周转时间4.等待时间5.响应时间CPU利用率在早起的计算机中,CPU很贵,所以人们希望CPU尽可能为人们工作就出来了CPU利用率还会算某种IO设备的利用率还会算多CPU的利用率系统吞吐量表示单位时间内完成多少作业周转时间提交到完成花的时间包括4个部分:1.作业在外存后备队列等待作业调度的时间 2.进程在就绪队列上等待进程调度的时间 3.进程在CPU上执行的时间 4,进行等待IO操作完成的时间周转时间=作业完成时间-作业提交时间平均周转时原创 2020-09-10 14:08:36 · 2691 阅读 · 0 评论 -
进程同步之信号量机制(pv操作)及三个经典同步问题
1.信号量机制信号量机制即利用pv操作来对信号量进行处理。什么是信号量?信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。一般来说,信号量S³0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的原创 2020-07-07 17:09:48 · 2920 阅读 · 2 评论 -
进程互斥的硬件实现方法
1.中断屏蔽方法利用 “开/关中断指令” 实现(与原语的实现思想相同,即在某进程开始访问临界区到结束访问为止都不允许中断,也就不能发生进程的切换,因此也不可能发生两个进程同时访问临界区的情况) 2.TestAndSet方法 3.Swap指令硬件方法优点:无论单处理机还是多处理机都适用;简单,容易验证其正确性缺点:违背了 “让权等待”,会产生 “饥饿” 现象无论硬件还是软件实现方法,只需理解执行过程,关键是软件实现方法...原创 2020-07-06 15:17:57 · 402 阅读 · 0 评论 -
进程互斥的软件实现方法
1.单标志法缺点:turn 表示当前允许进入临界区的进程号,而只有当前允许进入临界区的进程在访问了临界区之后,才会修改turn的值。也就是说,对于临界区的访问,一定是P0->P1->P0->P1…这样轮流访问。这种必须“轮流访问”带来的问题是,如果此时允许进入临界区的进程是P0,而P0一直不访问临界区,那么虽然临界区空闲,但是并不允许P1访问。因此,但标志法存在的主要问题是:违背了“空闲让进”原则2.双标志先检查法原因:进入区的“检查”和“上锁”俩个处理不是一气呵成的。“检查原创 2020-07-06 14:57:40 · 1013 阅读 · 0 评论 -
进程同步与互斥
1.概念进程同步概念:亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。进程互斥概念:对临界资源的访问,需要互斥地进行。即同一个时间段内只能允许一个进程访问该资源。进程互斥的四个区:进入区:检查是否可进入临界区,若可进入,需要“上锁”。临界区:访问临界资源的那段代码。退出区:负责解锁。剩余区:其余代码部分。进程互斥需要遵循的原则有:空闲让进:临界区空闲时,应允许一个进原创 2020-06-01 22:53:38 · 549 阅读 · 0 评论 -
进程调度算法
先来先服务算法和短作业优先算法先来先服务算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。短作业优先算法短作业(进程)优先调度算法S原创 2020-05-30 19:30:05 · 276 阅读 · 0 评论 -
三级调度
在有的操作系统中仅采用一级凋度,而有的操作系统则将凋度分为不同的层次,一个用户作业从进入系统成为后备作业开始,直到运行结退出系统为止,一般最多经历三级调度,即处理器调度可以分为以下3个层次。1.高级调度(High Level Scheduling)作业调度高级调度,称作业调度或长程调度(Long-term Scheduling)。在批处理操作系统中,作业首先进入系统在辅存上的后备作业队列等候调度,因此,作业调度是必须的。它将按照系统预定的调度策略, 决定把后备队列作业中的哪些作业调入主存,为它们创建进原创 2020-05-29 16:48:04 · 3999 阅读 · 0 评论 -
线程的实现方式以及模式
线程的实现方式线程的实现方式有2种:用户级线程和内核级线程。用户级线程中,有关线程管理的工作都是由应用程序完成的,内核意识不到线程的存在。应用程序可以通过使用线程库设计成多线程程序。内核级线程中,线程管理的工作由内核完成,应用程序没有进行线程管理的代码,只有一个到内核级线程的编程接口。内核为进程及内部的每一个线程维护上下文信息,调度也在内核基于线程架构的基础上完成。用户级内核级组合级线程用户级线程:1.线程的管理工作由应用程序完成2.没有涉及CPU变态3.操作系统不会意识到内核级线程原创 2020-05-28 23:21:14 · 503 阅读 · 0 评论 -
进程和线程
进程我们都知道计算机的核心是CPU,它承担了所有的计算任务,而操作系统是计算机的管理者,它负责任务的调度,资源的分配和管理,统领整个计算机硬件;应用程序是具有某种功能的程序,程序是运行于操作系统之上的。进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所原创 2020-05-28 22:38:03 · 207 阅读 · 0 评论 -
特权指令和非特权指令
所谓特权指令是指有特权权限的指令,由于这类指令的权限最大,如果使用不当,将导致整个系统崩溃。比如:清内存、置时钟、分配系统资源、修改虚存的段表和页表,修改用户的访问权限等。如果所有的程序都能使用这些 指令,那么你的系统一天死机n回就不足为奇了。为了保证系统安全,这类指令只能用于操作系统或其他系统软件,不直接提供给用户使用。因此,特权执行必须在核心态执行。实际上,cpu在核心态下可以执行指令系统的全集。形象地说,特权指令就是 那些儿童不宜的东西,而非特权指令则是老少皆宜。为了防止用户程序中使用特权指令,用户原创 2020-05-28 21:43:11 · 9324 阅读 · 0 评论 -
进程状态转换
进程的三态模型运行(running)态:进程占有处理器正在运行的状态。进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态; 在多处理机系统中,则有多个进程处于执行状态。就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行的状态。当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。等待(wait)态:又称阻塞态或睡眠态,指进程不具原创 2020-05-28 21:13:51 · 667 阅读 · 0 评论 -
进程_程序
进程:为动态的,是程序的一次执行程序:为静态的,是存放在磁盘里的可执行文件,就是一系列的指令集合进程的组成:Pcb,数据段,程序段PCB(进程控制块):进程描述信息:PID,UID进程控制和管理信息:进程当前状态 - 运行态,就绪态,阻塞态,创建态,结束态。进程优先级,代码运行入口地址,程序的外存地址,进入内存的时间,处理机占用时间,信号量使用等等资源分配清单:代码段指针,数据段指针,堆栈段指针,文件描述符,鼠标,键盘处理机相关信息:通用寄存器值,地址寄存器值,控制寄存器值,标志寄存器值,状原创 2020-05-26 23:24:33 · 379 阅读 · 0 评论 -
大内核和微内核
大内核微内核大内核只需要2次变态微内核需要6次变态进程管理,存储管理,设备管理故频繁的切换cpu状态的话会降低性能优缺点:大内核:高性能内核代码大,结果混乱,难以维护微内核内核功能少,结构清晰,方便管理,更加稳定性能低...原创 2020-05-26 20:00:59 · 2694 阅读 · 0 评论 -
系统调用
1.什么是系统调用系统调用:操作系统对应用程序/程序员提供的接口是程序员/应用程序请求内核服务对用户提供的是GUI其中编程语言向上提供库函数,有时会将调用封装成库函数,以隐藏系统调用的一些细节。在操作系统,向上提供系统调用,使得上层程序请求内核的服务。2.系统调用和库函数的区别有些库函数是对系统调用的进一步封装有些库函数没有使用系统调用比如说math.h数学方面的库函数不是系统调用比如创建文件的函数是系统调用3.为什么系统调用是必须的两个程序要同时进行共享资源的话要使用系统调用。原创 2020-05-26 19:40:36 · 379 阅读 · 0 评论 -
操作系统运行机制
CPU上会运行两种程序:操作系统内核程序和应用程序开机的时候跑的是操作系统内核程序,适当的时候,操作系统会让出CPU使用权。CPU的状态有两种:内核态和用户态,管态和目态。psw:程序状态寄存器:0表示内核态,1表示用户态。内核态->用户态:执行一条特权指令,修改psw为1,意味着操作系统主动让出CPU使用权用户态->内核态:由中断引发,硬件自动完成变态过程,触发中断信号意味着强行夺回CPU执行权。中断与异常中断机制是让操作系统夺回CPU使用权的唯一途径。如果没有中断机制的话,.原创 2020-05-25 22:39:32 · 1013 阅读 · 0 评论