操作系统基础知识

13 篇文章 0 订阅
8 篇文章 0 订阅

1.作业、进程、线程、管程定义:

作业:用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合。它包括用户程序、所需要的数据集控制命令等。作业是有一系列有序的步骤组成的。

进程:一个程序在一个数据集合上的一次运行过程。所以一个程序在不同数据集合上运行,乃至一个程序在同样数据集合上的多次运行都是不同的进程。

线程:线程是进程中的一个实体,是被系统独立调度和执行的基本单位。

管程:实际上是定义了一个数据结构和在该数据结构上的能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据

2.进程间的通信如何实现:

现在最常用的进程间的通信方式有信号、信号量、消息队列、共享内存。

所谓进程间通信,就是不同进程之间进行一些“接触”,这种接触有简单也有复杂。机制不同,复杂度也不同。通信是一种广义上的意义,不仅仅指传递一些message,使用方法基本相同。信号和信号量都可以用来实现同步和互斥,但前者是使用信号处理器来进行,后者使用P/V操作实现。消息队列是比较高级的一种进程间通信方法,因为它可以在进程间传送message,一个消息队列可以被多个进程所共享,共享消息队列的进程所发送的消息中出来message本身外还有一个标志,该标志可以指明该消息将有哪个进程或者那类进程接受,每一个共享消息队列的进程针对这个队列也有自己的标志,可以用来声明自己的身份。


3.Windows编程中互斥器(mutex)的作用和临界区(critical section)类似,前者可以用于进程间互斥,后者是线程之间的互斥。


4.所谓死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现在,若无外力作用,他们都将无法推进下去,此时称系统处于死锁状态或系统产生了死锁。产生死锁的四个必要条件:1>互斥条件:一个资源每次只能被一个进程使用。2>请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3>不剥夺条件:进程已获得资源,在未使用完之前,不能强行剥夺。4>循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

5.死锁的解除和预防:预防措施:1>采用资源静态分配策略,破坏“部分分配”条件 。2>允许进程剥夺使用其他进程占用的资源,从而破坏“不可剥夺”条件。3>采用资源有序分配法,破坏“环路”条件。

互斥条件是无法被破坏的


6.Windows平台的大部分程序都使用各种动态链接库(DLL)来避免重复实现功能。操作系统为每个程序加载若干DLL,具体有程序的类型决定。当程序不指定DLL的绝对位置时,将使用默认的搜索顺序找到它。默认情况下操作系统使用的搜索顺序是:1> 内存  2>KnownDLLs 3>清单与 .local 4>应用程序目录 5> 当前工作目录 6>系统目录 7>路径变量。

windows定位dll的搜索顺序:进程的当前工作目录-->包含exe文件的目录-->windows系统目录-->windows目录-->列在path环境变量中的一系列目录

7.DLL(Dynamic Linkable Library),动态链接库文件,一般来说是一种磁盘文件,以 .dll、.DRV、.FON、.SYS和许多以.EXE为扩展名系统文件都可以是DLL。它有全局数据、服务函数、资源组成,在运行时被系统加载到调用进程的虚拟空间中,成为调用进程的一部分,DLL模块中包含各种导出函数,用于向外界提供服务。DLL可以有自己的数据段,但没有自己的堆栈,使用与调用它的应用程序是相同的堆栈模式;一个DLL在内存中只有一个实例;DLL实现了代码封装性;DLL的编制与具体的编程语言及编译器无关。

DLL调用方式有两种:<1>静态调用方式:有编译系统完成对DLL的加载和应用程序结束时DLL卸载的编码(如还有其他应用程序使用该DLL,则windows对DLL的应用记录-1,直到所有的相关程序都结束对该DLL的使用时才释放它,此方式简单实用,但不够灵活。<2>动态调用方式:有编程者用API函数加载和卸载DLL来达到调用DLL的目的,使用上较为复杂,但能更加有效的使用内存,是编制大型应用程序时的重要方式


8.垃圾回收的优点和原理:

Java语言中的垃圾回收机制使得程序员在编写程序时不需要考虑内存管理。由于有垃圾回收机制,java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效地使用可以使用的内存。垃圾回收器通常作为一个单独的低级别的线程运行,在不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制包括  分代复制垃圾回收、标记垃圾回收、增量垃圾回收等。


9.简介CPU中的缓存 和 操作系统中的缓存:

快表---cache在OS中的典型范例:在OS中,为了提高系统的存取速度,在地址映射机制中增加一个小容量的联想寄存器(相联存储器),即快表,用例存放当前访问最频繁的少数活动页面的页号。当某用户需要存取数据时,根据数据所做的逻辑页号在快表中找到其对应的内存块号再联系页内地址,形成物理地址。如果在快表中没有相应的逻辑页号则地址映射仍可以通过内存中的页表进行,得到空闲块号后需将该块号填入快表的空闲块中。如果快表中没有空闲块,则根据淘汰算法淘汰某一行,再填入新的块号和页号。快表使得查找内存块的物理地址消耗的时间大大降低了,使得系统效率得到了极大的提高。例如linux使用页面cache的目的是加快对磁盘上文件的访问。内存映射文件以每次一页的方式读出并将这些页面存储在页面cache中。

高速缓存--cache在CPU中的应用:高速缓存是位于CPU和内存之间的临时存储器,它的容量比内存小但交换速度快。在cache中的数据时内存中的一小部分。但这一小部分是短时间内cpu即将访问的。当cpu调用大量数据时,就可避开内存直接从cache中调用,从而加快读取速度。由此可见,在cpu中加入cache是一种高效的解决方案,这样整个内存储器就变成既有cache的高速度又有内存的大容量的存储系统了。cache对cpu性能影响很大。这主要是有cpu的数据交换顺序和cpu与cache间的带宽引起的。cpu的执行速度越来越快,系统架构越来越先进,而主存的结构和存取速度改进则较慢,因此,高速缓存技术将越来越重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值