首页 > 学院 > 基础常识 > 正文

操作系统知识荟萃总结

2020-03-01 04:22:42
字体:
来源:转载
供稿:网友
任务  用户在解决问题或交易过程中需要计算机系统的工作集合。它包括用户程序,所需数据和控制命令。该任务包含一系列有序步骤。  过程  数据集中程序的运行过程。然后,程序在不同的数据集中运行,甚至程序在同一数据集的多次执行中运行也不同。  线  子进程是进程中的实体,是系统独立编程和执行的基本单元。  进程和线程之间的区别。  进程是程序的执行。线程可以理解为在进程中运行的一个程序。  这些过程是独立的,在内存空间和上下文中表示;线程在进程空间中执行。一般来说,(特殊技术是不适用的),则处理不能越过过程的边界,而线程是在处理空间访问上的其他进程的存储空间,通过相同的处理生成的线程它们共享相同的内存空间。  除非插入线程,否则同一进程中的两段代码不能同时执行。  子流程属于流程。当进程结束时,强制关闭并擦除进程生成的子进程。线程占用的资源少于进程占用的资源。进程和线程都可以具有优先级。  进程可以通过IPC进行通信,但线程则不能进行通信。  管过程  实际上,它定义了可以为并发进程执行的已修改数据结构中的数据结构和一组操作。这组操作可以同步进程并更改进程中的数据。  互联互通  进程之间最常见的通信形式是信号,信号量,消息队列和共享内存。  所谓的沟通过程就是在不同的过程之间进行一些“接触”。这种联系简单而复杂。机制不同,复杂程度也不同。沟通是一个广义的意义,而不仅仅是传递一些信息。它的使用基本相同,因此,只要掌握一种使用方法,然后记住其他使用方法。  信号和信号量是不同的,虽然它们可以用来实现同步和护士,但首先是使用信号处理器进行,这是使用P,V操作来实现的。 Message Queue是一种更高级的进程间通信方法,因为它实际上可以在进程之间传输消息,甚至可以发送“我找你”。  一个消息队列可以由多个进程共享(IPC是在此基础上执行的),如果一个进程太多消息,一个消息队列不适合,你也可以使用多个消息队列(但它可能更复杂)管理层)。除了消息本身之外,进程发送的消息的共享消息队列不是符号,该指示符可以指示消息已保存哪个进程是它接受的进程类型。共享消息队列的每个进程也有此队列的自己的标志,可用于声明其标识。僵局  死锁是指两个或更多进程正在进行中。由于资源竞争而相互等待的现象将无法在没有外力的情况下推进。此时,据说系统处于互锁状态或系统有死锁。  生成死锁的四个必要条件如下:  互斥条件:资源一次只能由一个进程使用。应用和保留条件:当进程因资源请求而被阻止时,它会保留已获取的资源。没有剥夺条件:过程所获得的资源在用尽之前不能被强制剥夺。  循环等待条件:在多个进程之间的头尾之间形成循环备用关系。  这四个条件是互锁的必要条件。当系统被阻塞时,必须建立这些条件,并且只要不满足上述条件之一,就不会发生互锁。  如何释放和防止联锁:  注意如何避免在系统设计,过程编程等方面建立这四个必要条件。如何确定合理分配资源的方法,防止该过程永久占用系统资源。此外,还需要防止进程在等待进程时占用资源。在系统执行期间,动态验证每个系统可以满足的资源的应用,并且根据验证的结果,分配所有资源。如果系统被阻止,则不会分配,否则将被分配。因此,资源配置必须有合理的规划。  根据产生死锁所需的四个条件,只要其中一个不能建立,就不会发生互锁。为此,可以采取以下3个预防措施:  使用静态资源分配策略来打破“部分分配”条件。  允许流程剥夺其他流程所持资源的使用会破坏“不可剥夺”的状况。使用由资源排序的分配阀会破坏“循环”状态。  请记住,互斥条件不能被破坏。  避免死锁的经典算法:银行算法。  内存管理  Windows内存管理方法主要分为:页面管理,段管理和段页面管理。  页面管理的基本原则是划分进程的虚拟空间中的长度相等的几页。管理页面根据大小划分的存储器空间成段或网页,然后将虚拟页面地址分配给存储器地址的摘要。页表和相应的解决离散地址转换硬件的问题地址转换机制。管理采用页面或预付分页技术的内部和外部存储器的统一管理。  优点:无外部片段,且每个内部片段不超过页的大小。  缺点:所有的程序都加载到内存中,并且需要相应的硬件支持。例如,领先一代分页机制地址转换和页面选择删除需要相应的硬件支持。这增加了机器的成本,提高了系统开销。  管理段的基本思想是根据内容比或处理功能的程序内容来划分,每个段都有自己的名字。在作业中或用户进程A段内容对应于一个两个维线性虚拟空间是二维html' target='_blank'>虚拟内存。段管理器中的段分配内存,然后在转换用的地址分配机制的实际存储器的物理地址计算出的虚拟地址。优点:可以单独编写和编译。对于不同类型的段,它可以被不同地保护。共享内存的能力可以按段完成,包括动态链接以共享代码。  缺点:生成碎片。  段页面管理:要实现段页面管理,系统必须为每个作业或进程恢复段表,以管理内存分配和释放,缺少段处理等。此外,因为段被分成几页。每个段必须再次创建一个页表,以将段中的虚拟页面转换为内存中的实际页面。显然,它与管理时间相同。页面上的表也有相应的条目来实现页面故障中断处理和页面保护。  段页面管理是段管理和页面管理的结合,因此它具有两者的优点。  另一方面,由于管理软件的增加,复杂性和一般费用将增加,并且所需的硬件和存储器消耗将增加,这将降低执行速度。  动态链接库/静态链接库  目前有两个带有lib后缀的库,一个是静态链接库,另一个是动态链接库导入库(DLL)。虽然静态链接库和动态链接库的导入库是.lib文件,但差别非常大,它们不一样。静态库本身包含实际执行代码,地址符号表等,对于导入库,实际执行代码在动态库中,导入库只包含符号表地址等,以确保程序找到一些相应的功能。地址的基本信息。  静态链接库是一个或多个obj文件的包,因此有人只是从一个名为File的obj文件调用生成lib的过程,该文件被合并。例如,如果链接到静态库,如果有错误,您将确切地找到哪个对象不正确,即静态库只是一个shell。当我们的应用程序项目使用静态链接库时,静态链接库必须参与编译。在生成执行文件之前的链接过程中,静态链接库中的所有指令都直接连接到可执行文件,因此可以执行它们。生成文件后,可以丢弃静态链接库中的.lib文件。  动态链接库(DLL)是一个可执行文件,充当共享函数库。动态链接为进程调用不属于其可执行代码的函数提供了一种方法。该函数的可执行代码位于.dll文件中,该文件包含一个或多个函数,这些函数已与使用它们的进程分开编译,链接和存储。 DLL还有助于共享数据和资源。多个应用程序可以同时访问内存中单个dll副本的内容。使用动态链接而不是静态链接有几个优点。 dll节省内存,减少交换操作,节省磁盘空间,更容易更新(不需要重新链接和编译很长时间),提供售后支持,提供扩展MFC库类的机制并支持多种语言的程序。静态链接库和动态链接库都是共享代码的方法。如果使用静态链接库,则lib中的指令直接包含在最终的可执行文件中。但是,如果使用dll(动态链接库),则不必将dll包含在最终的exe文件中。运行exe文件时,可以动态引用和卸载dll文件,静态链接库和动态链接库。其他动态链接库或静态库可以包含在动态链接库中,其他静态或动态链接库可以包含在动态链接库中。动态链接库和静态链接库之间的区别在于它允许可执行模块(.dll或.exe文件)仅包含在运行时定位dll函数的可执行代码所需的信息。在使用静态链接库时,链接器获取从静态链接库引用的所有函数,并将库与代码放在可执行文件中。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表