还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
执行程序我们每天都在使用各种各样的程序,例如浏览器、游戏、办公软件等这些程序是如何工作的呢?什么是执行程序?指令集合程序代码执行程序是一组计算机指令,它这些指令通常用高级编程语言编们被组织成一个有序的序列,用写,然后被编译或解释成计算机于告诉计算机如何完成一项特定可以理解的机器语言任务可执行文件执行程序通常存储在可执行文件中,可以被操作系统加载并执行执行程序的作用指导计算机执行任务提供解决方案,解决问题实现自动化操作,提高效率执行程序的结构一个执行程序通常由以下几部分组成•程序代码包含了程序的指令和数据•数据段用于存储程序运行过程中需要使用的变量和常量•堆栈段用于存储函数调用和局部变量•堆段用于动态内存分配程序编译与执行的过程源代码1程序员编写的源代码,通常使用高级编程语言编写编译器2将源代码转换为机器可以理解的指令目标代码3编译器生成的机器指令,也称为可执行文件链接器4将目标代码与系统库连接起来,生成可执行文件加载器5将可执行文件加载到内存中,准备执行执行6CPU执行可执行文件中的指令,完成程序功能编译器和解释器的区别编译器解释器将源代码一次性翻译成可执行的机器码,生成独立的执行文件速逐行解释执行源代码,不需要生成独立的执行文件灵活性高,可度快,效率高,但灵活性较差进行动态调试,但执行速度较慢执行程序的状态运行状态就绪状态阻塞状态程序正在执行,CPU正在处理其指令程序已准备就绪,等待CPU的分配程序正在等待某个事件发生,例如I/O操作完成进程的概念程序执行的实例资源分配的单位动态变化的实体进程代表一个正在运行的程序的实例操作系统将资源分配给进程,而不是进程的生命周期包含创建、运行、阻,它包含了程序代码、数据、状态等程序本身,每个进程拥有独立的地址塞、终止等状态,它是一个动态变化信息空间和资源的实体进程的生命周期创建1进程创建需要系统资源分配就绪2等待CPU资源分配运行3正在使用CPU执行任务阻塞4等待I/O或其他事件终止5进程结束并释放资源进程的基本操作创建挂起恢复终止操作系统通过创建系统调用来将正在运行的进程暂停,并将从等待队列中选择一个进程,释放进程占用的所有资源,并创建一个新的进程它放到等待队列中并恢复它的执行将其从系统中移除进程控制块进程标识符进程状态唯一标识一个进程记录进程当前状态程序计数器指示下一条指令地址上下文切换保存当前进程1将CPU寄存器和进程状态保存到内存加载新进程2将新进程的状态加载到CPU寄存器切换进程3将CPU控制权转移到新进程程序计数器指令指针顺序执行跳转指令123程序计数器(PC)也称为指令指针在大多数情况下,PC的值在执行完当遇到跳转指令时,PC的值会被修,它是一个寄存器,用于存储要执行一条指令后自动增加,指向下一条指改,指向跳转目标指令的地址,实现的下一条指令的地址令的地址,实现程序的顺序执行程序的控制流转移进程调度算法目的分类考虑因素优化系统资源利用率,提高系统吞吐量,•非抢占式一旦进程开始执行,就一•CPU利用率减少平均等待时间和响应时间直运行到结束,除非该进程主动放弃•吞吐量CPU•平均等待时间•抢占式允许正在运行的进程被其他•响应时间进程打断,以便其他进程有机会运行先来先服务()FCFS简单易懂公平性按照进程到达的顺序进行调度,所有进程都获得平等的机会,不无需复杂的计算或比较会出现某些进程长期等待的情况易于实现简单的FIFO队列即可实现,无需额外的复杂数据结构最短作业优先SJF时间优化预测挑战SJF算法旨在通过优先处理执行时间最短的作业来优化系统性能,SJF算法需要预先知道每个作业的执行时间,这在实际应用中可能从而减少平均等待时间和系统吞吐量无法准确预测,导致算法的实际效果与理论预期有所偏差时间片轮转()RR分配时间片时间片结束12每个进程被分配一个固定时间时间片结束后,进程被强制切片,在时间片内运行换到就绪队列,等待下一次调度循环调度3调度器轮流调度就绪队列中的进程,保证所有进程都能获得CPU时间优先级调度动态优先级静态优先级根据进程的动态变化,例如CPU预先设定每个进程的优先级,在利用率、等待时间等,动态调整整个运行过程中保持不变优先级优先级反转高优先级进程被低优先级进程阻塞,导致系统效率降低多线程的概念轻量级进程并发执行线程是进程的一部分,是进程的执行线程之间可以并发执行,提高程序的单元一个进程可以包含多个线程,效率例如,一个线程负责处理用户它们共享进程的内存空间和资源界面,另一个线程负责后台数据处理资源共享同一进程内的多个线程共享进程的内存空间和资源,包括代码段、数据段、堆和文件等线程的优缺点优点缺点提高应用程序的响应能力当一个线程被阻塞时,其他线程仍然线程同步问题多个线程访问共享资源时,需要进行同步,否则可以运行,从而避免整个程序阻塞可能会出现数据一致性问题更有效的利用系统资源多个线程共享相同的内存空间和资源,调试难度加大由于多个线程同时运行,调试线程程序比调试单可以更有效地利用系统资源线程程序更困难简化编程模型使用线程可以将程序分解成更小的任务,更容易资源竞争问题多个线程竞争使用相同的资源,可能会降低程序理解和维护的性能线程的实现用户级线程由应用程序管理线程,轻量级,快速创建和销毁内核级线程由操作系统管理线程,重量级,由内核调度线程调度时间片轮转优先级调度每个线程分配一个时间片,轮流每个线程分配一个优先级,优先执行,时间片用完就切换到下一级高的线程优先执行个线程随机调度随机选择一个线程进行执行,适用于对时间敏感性要求不高的场景同步问题与临界区临界区是指多个进程需要访问的共享多个进程同时访问临界区可能会导致资源部分数据不一致,产生同步问题同步机制保证一次只有一个进程访问临界区,防止数据冲突信号量机制概念操作用途信号量是一个整型变量,用于控制对共享资有两个基本操作wait和signal,用于等广泛应用于同步问题,如生产者-消费者问源的访问待或释放资源题、读者-写者问题管程机制共享资源管理封装数据和操作管程是一种高级同步机制,用于它将共享资源和对资源的操作封管理共享资源,并确保对资源的装在一个抽象数据类型中,称为访问是安全和有效的“管程”互斥访问控制管程机制确保一次只有一个线程可以访问共享资源,从而避免数据竞争和不一致死锁及其处理定义原因处理方法死锁是指两个或多个进程因互相等待对方死锁通常发生在多个进程竞争资源时,由常见的死锁处理方法包括死锁预防、死释放资源而陷入永久阻塞的状态,导致系于资源分配策略不当、并发访问方式不合锁避免、死锁检测和死锁恢复统无法继续运行理等原因导致虚拟内存管理扩大地址空间提高内存利用率通过将磁盘空间作为内存的一部仅加载正在使用的程序部分,有分来扩大地址空间,允许运行更效利用内存,减少内存碎片,提大、更复杂的程序高效率支持多任务处理允许多个程序共享内存空间,提高系统资源利用率,支持更多用户同时运行程序页面置换算法当内存已满,需要为新页面腾出空间页面置换算法的目标是减少页面失效时,选择哪个页面被替换,这就是页次数,提高系统性能面置换算法的作用常用的页面置换算法包括FIFO、LRU、OPT等,每种算法都有其优缺点和适用场景磁盘管理与文件系统磁盘管理文件系统磁盘管理是操作系统中负责管理存储设备的模块它将物理磁盘文件系统是组织和管理存储在磁盘上的文件和目录的一种层次结划分成逻辑存储单元,分配和回收磁盘空间,以及管理磁盘的读构它提供了一种方便的方式来访问、存储和检索数据写操作输入输出设备管理键盘鼠标显示器打印机键盘是用户输入的主要方式,鼠标用于控制光标位置和操作显示器负责将计算机处理的结打印机用于将电子文档或图像负责将字符和命令转化为计算,是图形界面交互的重要工具果以图形或文字的形式展现给打印成纸质输出机可识别的信号用户综合实例讨论结合实际应用场景,深入探讨执行程序相关概念的应用,例如-Web服务器多个用户同时访问网站,服务器需要处理大量的并发请求,涉及进程和线程的管理,以及内存和资源的分配-数据库管理系统数据库系统需要处理大量的用户请求,并保证数据的完整性和一致性,需要考虑并发控制和事务管理等问题-游戏引擎游戏引擎需要实时渲染场景、处理玩家输入、进行物理模拟等,需要高效的调度和资源管理。
个人认证
优秀文档
获得点赞 0