操作系统原理总结
-
操作系统是管理计算机硬件与软件资源的计算机程序,为用户提供接口,帮助用户使用计算机资源,常见的操作系统有Windows、Linux、Mac、Unix等。
-
操作系统和普通程序的区别在于,操作系统具有进程管理和内存管理。此外,操作系统常常还具有设备管理、文件管理、网络管理、分布式管理等功能。操作系统原理的课程也按此进行编排。
-
操作系统的发展经历了手工操作,单道批处理,多道批处理和分时系统,其硬件基础经历了电子管,晶体管,集成电路和大规模集成电路的革新。在发展过程中,操作系统的速度、容量、稳定性和可靠性等得到逐步提升。
-
现代操作系统多为分时系统,其本质是主机以一个很短的“时间片”为单位把CPU轮流分配给每个终端使用。由于时间片很短,看起来就像每个终端都实时的运行一般。
-
部分程序的运行可以不需要操作系统,如开机时可通过BIOS引导程序对CMOS参数进行设置。
-
操作系统的逻辑结构是指操作系统的设计和实现思路,包括整体式结构、层次式结构和微内核结构。
-
CPU的工作状态包括用户态、核态和管态,其资源和指令使用权限的不同。用户程序运行在用户态,操作系统运行在核态。正是因为权限不同,用户程序必须借助操作系统提供的API 函数完成内核相关操作。
-
硬件按“态”来区分CPU的状态,操作系统按“进程”来区分CPU的状态。Intel CPU有4态,包括Ring 0~Ring 3,其中Ring 0最核心。
-
操作系统的存储器包括寄存器、高速缓存(CACHE)、主存(内存)、辅存(硬盘),其速度逐渐下降,容量逐渐提升,价格也越发便宜。当需要访问某个数据或代码段时,CPU按顺序分布访问缓存,内存和辅存。
-
不同于循环扫描,CPU可以通过中断机制处理突发的事件。当中断发生时候,CPU停止当前工作,转去处理该外部事件,处理完毕回到原来的工作中断处(断点)继续原来的工作。为了能够顺利返回原来的工作,操作系统需要记录当前程序指针位置,并将工作变量和寄存器等信息压入栈中,当中断处理完毕后,将这些信息从栈中读取处理,继续执行。
-
刚开机时,CPU运行在实地址模式下,程序按照20位物理地址的寻址方式访问0h-FFFFFh的1M内存。在实模式存取的1M空间的尾部64K空间内存放系统BIOS文件,用于系统的启动配置。此模式下,CPU只能单任务运行。
-
在操作系统接管计算机时,系统可进入保护模式,此时程序以32位虚拟地址寻址方式访问4GB虚拟内存空间,应用程序和操作系统的运行环境被保护起来。同时,CPU支持多任务工作。
-
从按下电源键开始,电脑进行加电自检,BIOS中的启动程序加载MBR中的引导程序,装入内存特定位置,引导程序启动DOS7.0,调入操作系统核心,windows开始接管系统。电脑继续寻找显卡等相关设备BIOS,显示启动画面、BIOS、芯片组型号和主板等信息,并从硬盘/软盘/光盘/U盘读入操作系统。操作系统启动后,由操作系统接管计算机。
-
操作系统提供的用户接口包括操作界面和系统调用,包括GUI和键盘命令。而键盘命令又包括DOS,批处理,Shell等。系统调用是操作系统内核为应用程序提供的服务和函数。程序调用系统内核命令会产生相应中断,系统进行现场保护,查找相关命令入口地址,由用户态陷入内核态执行相应的系统调用。在执行结束后,恢复现场,回到用户态,继续运行程序。
-
进程是程序在某个数据集合上的一次运行活动,其数据集合指软/硬件环境。进程与程序的区别是不同的。进程是动态的,是程序一次执行过程,在内存中暂存,而程序是静态的,是一组指令的有序集合,在介质中长存。此外,一个程序可以拥有多个进程。
-
操作系统允许多个进程共存,每个进程按各自速度向前推进。为了让进程有序的运行避免阻塞和相关干扰,需要对进行进程管理。进程的状态包括,运行态,就绪态和阻塞态等,其状态可根据一定条件进行相互转化。
-
子进程是父进程的复制,具有相同的代码,相同的数据,相同的堆栈,子进程与父进程具有相同行为,差别在于进程标识不同,与时间相关的信息不同。父子进程可以并发运行,并发运行从创建进程后的位置开始执行,避免重复创建新进程。
-
当操作系统支持线程时,线程代替进程成为CPU的调度单位。线程是可由CPU直接运行的实体,一个进程可以创建多个线程,多个线程共享CPU可以实现并发运行,具有比进程更高的并发力度。
-
线程技术解决程序多个功能需要并发运行的问题,如一手画圆一手画方,看视频可以听到声音同时看到字幕。线程技术可以提高窗口程序的交互性,一般将前台交互作为主线程,而后台计算作为子线程。
-
进程的关系包括同步,互斥,常见的进程管理机制包括锁机制,信号灯机制和PV操作。
-
临界资源是指一次只允许一个进程独占访问(使用)的资源,临界区则是进程中访问临界资源的程序段。因此访问临界资源应该遵循,忙则等待,空闲让进,有限等待和让权等待等原则。
-
在两个或多个进程中,每个进程都持有某种资源,但又仅需申请其他进程已持有的某种资源。此时每个进程都拥有其运行时所需的一部分资源,但又都不够,从而每个进程都不能向前推进陷于阻塞状态,称为死锁。穿匡威才能买匡威,在先前没有匡威的人和匡威售卖店间的买卖形成死锁。
-
由于死锁解决算法复杂,取得的效益差,现有的操作系统不采取任何死锁处理方案,而将难题移交给用户。
-
进程调度指在合适的时候以一定策略选择一个就绪进程的运行,其目的是让每个进程都能快速响应,尽可能避免饥饿和死锁。常见的调度算法如,先来先服务调度,短作业优先调度,响应比高者优先调度,优先数调度,循环轮转调度等。进程调度需要进行现场保护,其过程类似中断处理。
-
除CPU和内存外的设备都可以称为外设,操作系统一般以文件的形式管理设备,包括设备的打开,读写,控制和关闭。所谓设备驱动,可认为是实际物理设备封装成系统可调用的API函数,操作系统通过这些函数可简单的操控实际物理设备。