第一章 操作系统概述
1.1操作系统的基本概念 1.1.1 操作系统的概念系统调用:允许应用程序使用内核功能的接口,只能通过用户程序间接使用
1.1.3 OS的目标和功能 2.OS作为用户 和 硬件之间的接口接口分为两种:
(1)命令接口:通过命令来组合控制作业的进行联机命令接口
又称交互式命令接口
适用于分时或实时操作系统
cmd中的各种命令就是联机命令接口
类比于”解释“型编程语言的概念
用户说一句,OS做一句
脱机命令接口
又称批处理命令接口
适用于批处理系统
你写好了一个.bat文件再在cmd中执行它就是脱机命令接口
类比于编程语言类型中的”编译“
用户说一堆之后,OS再做一堆
(2)程序接口:码农用它们来请求OS服务由一组系统调用命令组成(简称系统调用,又称广义指令)
用户->程序->程序接口->OS->硬件
命令接口,谁都可以使用(打开cmd),而程序接口,只有码农写好了程序,一般的计算机用户,通过这个程序才能调用程序接口。
最典型的就是windows的GUI,只有微软的大佬们写好了windows GUI,我们才能通过鼠标和键盘,在看不到的情况下,调用程序接口。
1.1.4 错题及解析16.OS与用户通信的接口通常不包括缓存管理指令
缓存管理指令由OS之间操作,对用户透明,也就是OS不提供管理缓存的接口,用户无法管理缓存。
而shell、命令解释器属于第一类接口,即命令接口;而广义指令则是第二类接口
17.顺序性是单道程序而不是多道程序的基本特征
多道程序共享也争用有限的资源,所以存在共享性和制约性,而为了竞争的公平起见,多道程序共同执行时也需要有程序不时地中断,所以存在间断性
19.系统开机后,操作系统最终被加载到RAM中的系统区。
有段时间不看计组了,忘了、、、、
二、库函数与系统调用的区别和联系
库函数是编程语言内部的事情,而系统调用是编程语言外部的事情——通过编程语言来进行系统调用。
但是如果在编程语言中,进行系统调用,往往需要导入库函数;同时,许多库函数也会使用系统调用来实现功能。
库函数运行在用户空间,系统调用运行在内核空间。
使用系统调用的库函数要慢,因为要进行上下文的切换、用户态和核心态的转换。
1.2 OS的发展和分类 1.2.2 批处理阶段(OS开始出现)解决的主要问题:人机矛盾及CPU和I/O设备之间速度不匹配的矛盾
1.单道批处理系统用户输入一批程序之后,交给计算机执行,但是在计算机中,程序是一道道执行的
特点:
自动性:用户将程序交给计算机之后就再也不需要也不能干预了
顺序性:”先来先服务“
单道性
2.多道批处理系统解决的主要问题:单道批处理系统中,每道程序的运行期间包括了I/O时间,此时CPU被浪费
特点:
多道:计算机中同时存放多道独立的程序
宏观上并行:多道程序都处于运行状态
微观上并行:对于各个资源,尤其是CPU,还是需要交替执行的
需要解决的问题:
分配问题
处理器
内存
I/O
安全性
大量的程序和数据
如何保证不会相互影响
1.2.3 分时操作系统解决的主要问题:批处理操作系统人机交互能力差,程序一旦执行,用户既无法了解也无法控制程序
批处理OS是用户和计算机之间是一对一,基于将计算机资源切成一片片的;
而分时OS是用户和计算机之间是多对一,基于将时间切成一片片的。
由于计算机速度快,时间片轮转得也快,所以给用户的感觉就像自己独占一台计算机。
分时操作系统的主要特征:
同时性
又称多路性
多个终端用户共同使用一台计算机
用户们同时或基本同时使用一台计算机
交互性:相较于批处理系统,人机交互性更好
独立性:用户好像在独占这台计算机
及时性:用户的请求能在很短的时间内获得响应
1.2.4 实时操作系统解决的主要矛盾:分时操作系统应急性差,遇到某些突发情况无法紧急响应
硬实时系统
某个动作必须在规定时刻完成
比如飞行器的飞行控制系统
软实时系统
偶尔违反情况也可以接受
比如飞机订票系统
主要特点:可靠性和及时性
1.2.5 网络操作系统和分布式操作系统分时和实时操作系统,只有一台计算机,而网络和分布式操作系统则是有许多主机。
网络OS主要特点:
资源共享
各个计算机之间通信
分布式OS:
任意两台计算机通过通信方式交换信息
地位平等
所有资源为用户共享
若干计算机都可以构成子系统并支持重构
任何工作都可以分布在几台计算机上,由它们并行、协同完成
分布式OS与网络OS本质上的不同在于:在分布式操作系统中,若干计算机协同完成同一任务
1.2.7 习题及解析7.实时操作系统必须在被控制对象规定的时间处理来自外部的时间
二、综合应用题
3.甘特图如下: