前言
✨本篇为博主 考研操作系统 的第一篇:1.1 操作系统的基本概念
本篇博客内容来自:
👊2022王道视频笔记总结
👊2023王道书重点归纳总结
👊2023王道习题好题,错题总结
需要博主PDF版笔记或相关资料的同学可以评论出来,我会私发给大家~
笔记
操作系统是软件的核心。
操作系统管理各种计算机硬件,为应用程序提供基础,充当计算机硬件与用户之间的中介,控制和协调各用户的应用程序对硬件的分配与使用。操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织,调度计算机的工作与资源分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是系统资源的管理者,并向上层提供方便易用的服务。操作系统是计算机系统重最基本的系统软件(是最接近硬件的软件)。
操作系统的四大特征:(关键字)
1.并发:在 同一时间间隔 内发生;同时存在多个运行的程序;每个时刻,单处理机环境下仅能有一道程序执行;具有处理和调度多个程序同事执行的能力;操作系统重引入进程目的是使程序能够并发执行;并发性是通过分时实现的;<区别并时:同一时刻;需要硬件支持>
2.共享:共享就是资源共享;系统中的资源可被多个并发执行的进程共同使用;分为两类:
a.互斥共享方式(QQ,微信视频时摄像头只有一个能用):一段时间内只允许一个进程访问该资源;A访问完并释放资源后,B才可以访问;一段时间内只允许一个进程访问的资源称为临界资源(大多数物理设备以及某些软件中用的栈,变量,表格)
b.同时访问方式(QQ,微信同时发文件):允许一段时间内有多个进程 “同时” 访问,““同时” 是宏观上,微观上是交替访问,即 “分时共享”(注:也可以微观上也是同时的:边听歌边打游戏发语音)“同时” 访问的典型资源:磁盘设备。
互斥共享是要求一段时间内(哪怕很小一段时间)只能满足一个请求,同时访问是把一个请求分好几个时间片段间隔地完成,效果和连续是相同的。
并发和互斥是操作系统最基本的两个特征,他们互为存在条件:没有并发执行不存在资源共享,不能资源共享并发就无法执行。
3.虚拟:把一个物理上的实体变成逻辑上的对应物;没有并发性就谈不上虚拟性;实现虚拟的技术是虚拟技术;虚拟技术可以分为:
a.时分复用技术(处理器的分时共享):通过多道程序设计技术,让多道程序并发执行,分时使用一个处理器,即虽然只有一个CPU,但是可以为多个用户服务,并且每个用户认为自己是独占一个CPU
b.空分复用技术(虚拟存储器):把机器的物理存储器变成虚拟存储器,从逻辑上扩充存储器的容量,此时用户感觉到的内存容量是虚的。
4.异步:多个程序执行的时候,由于资源有限,进程的执行是走走停停的,以不可预知的速度向前推进;只有系统拥有并发性,才可能导致异步性;只要运行环境相同,操作系统就须保证多次运行进程后都能获得相同的结果。
操作系统作为系统资源的管理者:
1.处理机管理:多道程序环境下,处理机的分配和运行以进程(线程)为基本单位;进程管理的主要功能包括进程控制,进程同步,进程通信,死锁处理,处理机调度等。
2.存储器管理:给多到程序执行提供环境;主要包括内存分配与回收,地址映射,内存保护与共享,内存扩充。
3.文件管理:计算机中的信息都是以文件的形式存在的;操作系统中负责文件管理的是文件系统,包括对存储空间的管理,目录管理以及文件读写管理和保护。
4.设备管理:完成用户的 I/O 请求;包括缓冲管理,设备分配,设备处理和虚拟设备。
操作系统作为用户与计算机硬件系统之间的接口
1.命令接口:命令接口进行作业控制的主要方式分为:联机控制方式和脱机控制方式;根据作业控制方式的不同可分为:联机命令接口和脱机命令接口。
a.联机命令接口(交互式命令接口):用户说一句,系统做一句;强调了交互性
b.脱机命令接口(批处理命令接口):用户说一堆,系统做一堆。
2.程序接口:注:普通用户不能直接使用程序接口,只能通过程序代码间接使用;程序接口就是系统调用,就是广义指令;用户在程序中通过这些系统调用来请求操作系统为其提供服务(使用各种外部设备,申请分配和回收内存等);图形用户界面(GUI),即图形接口不是操作系统的一部分,但是GUI 最终是调用程序接口实现的,即图形接口所调用的系统调用命令是操作系统的一部分;系统调用类似函数调用,是应用程序请求操作系统服务的唯一方式。
操作系统实现了对计算机资源的扩充
没有任何软件支持的计算机是裸机,它只构成了物质基础;裸机在最里面,外面是操作系统;我们通常把覆盖了软件的机器称为扩充机器或虚拟机。
习题总结
源程序是一种计算机代码,是用程序设计语言编写的程序,是直接面向程序员用户的,而不是操作系统的管理内容。操作系统管理文件,是指操作系统关心计算机中的文件的逻辑结构,物理结构,文件内部结构,多文件之间如何组织的问题,而不是关心文件的具体内容。
CPU,外存,内存资源都是操作系统所管理的资源。
程序语言的编译器实质上是一段程序指令,不是操作系统所关心的问题。
用户在程序中试图读某文件的第100个逻辑块,使用操作系统提供的系统调用接口:文件I/O需要在内核态运行。
命令解释器属于命令接口,shell是命令解释器,系统中的缓存全部由操作系统管理,对用户是透明的,操作系统不提供管理系统缓存的系统调用。
引入多道程序设计后,程序的执行就失去了封闭性和顺序性,顺序性是单道程序设计的基本特征,因为共享资源及相互协同的原因产生了竞争,相互制约,考虑到竞争的公平,程序的执行是断续的。
操作系统是用来管理资源的程序,用户程序也是在操作系统的管理下完成的,配置了操作系统的机器与裸机相比,资源利用率大大提高。
单处理机系统中,可并行的是:处理机与设备,处理机与通道,设备与设备;进程和进程不可并行。
库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),库函数属于用户程序而非系统调用,是系统调用的上层。
系统开机后,操作系统的程序会被自动加载到内存中的系统区,这段区域就是 RAM。
辨析库函数与系统调用:库函数是语言或应用程序的一部分,运行在用户空间中。系统调用是操作系统的一部分,运行在内核空间中。许多库函数会使用系统调用来实现功能,没有使用系统调用的库函数的执行效率会较高,这是因为在使用系统调用的时候,需要上下文的切换以及状态的转换(用户态转为内核态)