-
操作系统是一种系统软件
-
通用软件:普通大众都会使用的,如office,迅雷
-
专用软件:某些领域的专业人士使用的,如AutoCAD,logic Pro
-
系统软件:计算机中负责管理,运行,控制和维护计算机系统资源的软件。如,操作系统,数据库管理系统(DBMS),语言处理程序(编译程序是把高级语言编译成汇编语言,或直接编译成机器语言,是用来处理高级语言的,汇编程序负责把汇编语言翻译成机器语言),服务性程序(程序在运行之前是需要装入到内容中的,装入这个动作就是由装入程序完成的,他就是典型的服务性程序),标准库程序(标准输入输出等printf,scanf)
-
应用软件:利用计算机软件,硬件资源为解决各种实际应用问题而编制的程序。如,微信,office
-
软件包:是指具有特定的功能,用来完成特定任务的一组程序(windows安装软件的时候,这个软件的背后有一组程序)
-
操作系统是对计算机资源进行管理的软件
-
Windows的“任务管理器” Ctrl+Alt+Del
-
软件=程序+其他相关文件等,如,一个游戏软件包括 (x.exe) 和其他图片 (x.bmp)等,音效(x.wav等)等附件,那么这个程序(x.exe)称作“应用程序”,而它与其他文件(图片,音效等)在一起合称“软件”
-
软件,硬件都属于计算机资源,除了软件和硬件,操作系统还负责对文件的管理,而文件≠软件,但文件依然属于计算机资源
-
源程序资源不是操作系统应该管理的,源程序,即源代码文件,由程序员进行管理,c语言源程序:x.c文件,Java源程序:x.java文件
-
第二章—进程管理,主要探讨操作系统对CPU这种资源的管理
-
第三章—内存管理,主要探讨操作系统对内存这种资源的管理
-
第四章—文件管理,主要探讨操作系统如何组织文件的数据,一个文件拆分,如何被放在磁盘里,也会探讨操作系统对外存资源的管理,因为文件存在外存,存在磁盘里面,外存也属于第五章的内容设备管理。
-
第五章—输入/输出管理(设备管理)
-
管理计算机裸机是操作系统关心的问题
-
管理计算机系统资源是操作系统关心的问题
-
设计,提供用户程序与硬件系统的界面是操作系统关心的问题
- 界面,接口—interface的两种常见翻译
- 操作系统提供给用户程序使用的接口:系统调用
- 操作系统提供给用户直接使用的接口:命令接口,GUI
-
高级程序设计语言的编译器不是操作系统关心的问题
-
操作系统的基本功能是控制和管理系统内的各种资源
-
①.1950年代早期第一个操作系统诞生(批处理操作系统)
-
②.后来某个时候第一个支持用户交互的操作系统
-
③.1970年代早期第一个GUI诞生 (施乐公司发明的)
-
④.1983年互联网诞生
-
现代操作系统中最基本的两个特征是并发和共享
- 在单核电脑中,优酷和qq,如果不能并发,那么刷剧时不能和朋友聊天,聊天时不能刷剧;
- 并发特性,在用户看来,两个进程同时执行(宏观上);在操作系统看来,两个进程交替的使用CPU,硬盘等系统资源(微观上),此时的交替地 就是共享特性
- 共享:播放本地电影(读硬盘)+QQ传文件(写硬盘),宏观上,在同时使用系统资源,或者说是在共享地使用系统资源
- 如果没有共享特性,那么并发特性一定没有办法实现
- 如果没有并发特性,那么共享特性就失去了它存在的意义
- 虚拟,物理上的一个实体,把它虚拟变成逻辑上的多个实体,在单核电脑中,物理上一个CPU,但是逻辑上,优酷和qq都有一个专门的CPU分别为这俩服务,就是虚拟CPU,如果没有并发性,虚拟就失去了它存在的意义
-
虚拟,异步特性依赖于并发特性
-
现代操作系统中的基本特征是并发,共享,虚拟,异步
-
并发:宏观上同时,微观上交替发生
-
并行:微观上同时进行
-
提高单机资源利用率的关键技术是多道程序设计技术
- 多道程序设计技术----从单道程序->多道程序,单机资源利用率大幅提升
-
脱机技术—脱离主机的控制,提前将作业数据输入/输出到磁带,用于缓和I/O设备与主机之间的速度矛盾
-
假脱机技术—将独占设备改造为共享设备,第五章学
-
虚拟技术—如虚拟内存技术,可以增加并发度,第三章学
-
交换技术—增加并发度,第三章学
-
批处理系统的主要缺点是无交互能力
-
操作系统的发展
- 手工操作阶段
- 批处理阶段
- 单道批处理(读入完成输出,读入完成输出…),引入脱机输入/输出技术(磁带),监督程序(操作系统的雏形)主要矛盾:CPU等待I/O导致资源利用率低
- 多道批处理,引入中断技术,主要矛盾:无交互性。只能通过作业说明书交互
- 分时系统
- 引入按时间片轮转的分时技术,允许多个用户与计算机直接交互
- 实时系统
- PC操作系统
-
通用操作系统:平时使用的面向大众的,例如Windows,安卓等
- 在通用操作系统管理下的计算机上运行程序,不需要向操作系统预定运行时间。例如,打开微信,直接可以使用
- 在通用操作系统管理下的计算机上运行程序,需要确定起始地址,并从这个地址开始执行
-
专用操作系统:给火箭使用的,天河一号等。实时性比较高,要提前预定运行时间
- 在专用操作系统管理下的计算机上运行程序,需要向操作系统预定运行时间。
-
操作系统不需要提供高级程序设计语言的编译器
-
管理计算机系统资源是操作系统关心的主要问题
-
批处理并不要求需要大内存,内存下也行,
-
特权指令必须在核心态才能运行
- 题目中常见的几种特权指令:输入输出指令(I/O指令),开中断指令,关中断指令,修改PSW的指令
- 注意:访管指令(trap指令)不是特权指令
-
通道技术:通道是一种硬件(CPU的小马仔),通道可以执行I/O指令,从而管理I/O设备的工作
-
引入多道程序设计技术的最主要原因是提高各种硬件资源的利用率
-
用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和陷入(trap)指令
-
trap指令:或陷入指令,陷阱指令。在系统调用中,trap负责由用户态转换为内核态
-
中断:与硬件相关,外部设备通过发送中断信号通知CPU抽空处理设备请求
-
用户程序设计时,使用系统调用命令,该命令经过编译后,不能形成屏蔽中断指令
- 如果我们在用户程序当中可以使用屏蔽中断指令的话,那就意味着我们的用户程序永远不可能被打断,其他用户程序要和它并发争抢CPU资源就没办法实现了,十分危险,所以在用户程序当中最后形成的不可能是屏蔽中断指令
-
屏蔽中断指令:实现关中断,使当前操作不可被中断,相当于一个门
-
命令接口(允许用户直接使用)
- 联机命令接口:用户说一句,系统做一句
- 脱机命令接口:用户说一堆,系统做一堆
-
系统调用功能是操作系统向用户程序提供的接口
-
程序接口(允许用户通过程序间接使用):由一组系统调用组成(程序接口=系统调用)
-
用户及其应用程序和应用系统是通过系统调用提供的支持和服务来使用系统资源完成其操作的
- 因为系统资源十分重要,这个权限一定不能交给用户,要由操作系统来管理
-
早期计算机使用命令行界面,需要用户记住各种指令,后来由苹果公司第一个推出了GUI,操作直观,使计算机使用更加简单
-
编译源程序:把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式。如C语言翻译为二进制文件的过程
-
中断处理是操作系统必须提供的功能
- 计算机的各种错误的处理,进程切换等都需要中断处理。无中断,无并发。
-
系统调用存在的目的:
- 目的:为了使系统更稳定,安全,要防止小白用户,恶意用户进行非法的越权操作
- 解决方案:将系统的核心功能封装为系统调用
- 问题:系统调用过程需要用户态与核心态的切换,降低效率
- 在一些专业性较强,实时性要求较高的操作系统中,可不提供系统调用,以换取效率,如NASA使用的VxWorks系统(在火箭,卫星上使用)
-
由访管指令(trap指令)引起的内中断就是“访管中断”
-
用户程序在用户态下要使用特权指令引起的中断属于软件中断(software interrupt)
-
内中断(也称异常,例外):与当前执行的指令有关,中断信号来自CPU内部
- 或:软件中断,软中断
- 陷阱,陷入(trap):由陷入指令引发,是应用程序故意引发的
- 故障(fault):由错误条件引起的,可能被内核程序修复。内核程序修复故障后会把CPU使用权还给应用程序,让它继续执行下去。如:缺页故障。
- 终止(abort):由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU使用权还给引发终止的应用程序,而是直接终止该应用程序。如:整数除0,非法使用特权指令
-
外中断(也称“中断”):与当前执行的指令无关,中断信号来自CPU外部
-
内核可以执行处理器能执行的任何指令,用户程序只能执行除特权指令外的指令,所以特权指令只能由内核即操作系统使用