在管态(核心态或内核态)时,它可以执行所有的指令,包括特权指令,如设置硬件寄存器、管理内存、控制I/O设备等。操作系统通常在管态下运行,执行系统调用、调度任务、处理中断和错误。而在目态(用户态或用户模式)下,CPU只能执行非特权指令,这主要是为了保护系统不受用户程序的意外破坏。如果用户程序试图执行特权指令,CPU会触发异常,转到操作系统内核进行处理。
操作系统是计算机系统的核心组成部分,它负责管理和控制硬件资源,为用户提供服务和接口。操作系统的主要功能包括进程管理、内存管理、文件管理、设备管理和作业调度。其中:
1. **进程管理**涉及进程的创建、撤销、调度和同步。例如,当多个进程竞争CPU时,操作系统使用调度算法(如FCFS、SJF、HRN、优先级调度等)决定哪个进程获得执行权。进程间的通信和同步通过信号量、管程等机制实现,以确保并发进程的正确执行。
2. **内存管理**主要包括内存分配、回收和地址映射。虚拟内存技术使得进程可以拥有超出实际物理内存大小的地址空间。页式或段式存储管理用于实现内存的分页和分段,同时通过缺页中断处理页面置换,以解决主存不足的问题。
3. **文件管理**涉及文件的创建、打开、读写、关闭及删除等操作。删除文件的过程包括从目录结构中移除文件名,释放文件占用的存储空间,并确保在删除前文件已被正确关闭。
4. **设备管理**利用缓冲池和设备驱动程序来提高I/O效率。对于独占设备,通常采用静态分配,而在多用户环境下,设备的分配可能需要考虑共享和独占的策略。
5. **作业调度**根据不同的目标选择合适的调度算法,比如批处理系统追求吞吐量,而交互式系统更注重响应时间。作业调度算法有FCFS、短作业优先、响应比高者优先等。
6. **中断机制**是硬件和操作系统之间的关键接口,用于处理外部事件和内部错误。中断装置检测到事件后,CPU会暂停当前进程,转而执行中断处理程序,处理完后再恢复原进程的执行。
操作系统还负责解决死锁问题,防止、避免或检测死锁的发生。死锁产生的原因主要是资源不足和进程推进顺序不合适,可以通过资源预留、银行家算法等方法来防止死锁,或者通过资源分配图分析和死锁检测算法来避免或解除死锁。
操作系统的发展经历了批处理、分时、实时、网络和分布式等多个阶段,以适应不断变化的计算需求和技术环境。从批处理操作系统到现代的分布式系统,操作系统始终扮演着协调和优化资源使用的核心角色,为用户提供高效、可靠和安全的计算环境。