操作系统(https://blog.csdn.net/weixin_43914604/article/details/104415990)
操作系统的概念
- 系统最核心的软件,属于系统软件
- 控制和管理整个计算机的硬件和软件
- 合理的组织、调度计算机的工作资源的分配
- 为用户和其他软件提供方便的接口和软件
操作系统的功能和目标
(1)作为计算机系统资源的管理者
主要任务:管理软硬件,合理地组织、调度计算机资源的分配
- 处理机(CPU)管理
在多道程序的环境下,cpu的分配与运行都以进程(线程)为基本单位,所以对CPU的管理可以理解为对线程的管理。主要功能包括:进程控制、进程通信、进程同步、处理机调度、死锁处理 - 存储器管理(内存的管理)
为多到程序提供良好的环境,方便用户使用并提高内存利用率,主要功能:内存的分配与回收,内存的保护与共享,内存扩充,地址映射 - 文件管理(字面意思,计算机中所有信息都是以文件存在的)
主要功能:文件存储空间的管理,目录管理,文件读写管理和保护 - 设备管理
完成用户的IO请求,方便用户利用各种设备,提高设备的利用率,主要功能:设备分配,设备处理,虚拟设备,缓存管理
(2)作为用户与计算机硬件之间的接口
操作系统的接口分为两类:命令接口(用户可以直接调用的)与程序接口(用户可以间接调用的)
(1)命令接口(直接调用)
命令接口又分类两类:联机命令接口和脱机命令接口
(1.1)联机命令接口
(1.2)脱机命令接口
(2)程序接口(间接调用)
由一组系统调用(广义指令)组成,用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,例如:桌面上删除一个文件,可以直接把文件拖拽进回收站
(3)作为扩充机器(虚拟机)
- 没有任何软件支持的计算机称为裸机
- 覆盖了软件的机器称为扩充机器或者虚拟机
操作系统的特征(easy)
1.并发与并行
并发:两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,在微观上是交替发生的, 操作系统的并发性指系统中同时存在着多个运行的程序
并行:两个或多个事件在同一时刻发生
一个单核(CPU)同一时刻只能执行一个程序,因此操作系统会协调多个程序使他们交替进行(这些程序在宏观上是同时发生的,在微观上是交替进行的)
操作系统是伴随着“多道程序技术出现的”,因此操作系统和并发是一同诞生的
在如今的计算机中,一般都是多核cpu的,即在同一时刻可以并行执行多个程序
2.共享
资源共享即共享,是指系统中的资源可以供内存中多个并发执行的进程共同使用
共享分为两类:互斥共享和同时共享
(1)互斥共享
计算机中的某个资源在一段时间内只能允许一个进程访问,别的进程没有使用权
临界资源(独占资源):在一段时间内只允许一个进程访问的资源,计算机中大多数物理设备及某些软件中的栈、变量和表格都属于临界资源,它们被要求互斥共享
举个例子:比如QQ和微信视频。同一段时间内摄像头只能分配给其中一个进程
(2)同时共享
计算机中的某个资源在在一段时间内可以同时允许多个进程访问
同时共享通常要求一个请求分为几个时间片段间隔的完成,即交替进行,“分时共享”
这里的同时指在宏观上是同时的,在微观上是交替进行访问的,只是cpu处理速度很快,我们感觉不到,在宏观上感觉是在同时进行
举个例子:比如QQ在发送文件A,微信在发送文件B,宏观上两个进程A和B都在访问磁盘,在我们看来是同时进行的,但是在微观上两个进程A和B是交替进行访问磁盘的,只是时间太短,cpu处理速度太快,我们感觉不到。
注意:有时候多个进程可能真的是在同时进行资源访问,比如玩游戏时可以放音乐,游戏声音和音乐声音都能听见
(3)并发性和共享性互为存在条件
3.虚拟
多道复用技术:在内存中同时放入几个相互独立的程序,在管理程序的控制下,相互穿插的运行。两个或两个以上的程序同时处于开始到结束的状态,称为多道复用技术。多道程序运行的特征:宏观上并行,微观上串行
异步:多道程序环境允许多个程序并发执行,但由于资源有限,如cpu只有一个,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。
比如A进程正在占用CPU计算,B进程这时也想占用CPU计算,B进程只有等,等A进程算完了,A进程去访问磁盘资源了,这时B进程再占用CPU进行计算,B进程还没计算完,A进程从磁盘取出资源了,A进程发现B这时在占用CPU,这时A进程就需要等待,等B算完后再继续到CPU中进行计算。由于每个进程占用资源的时间不固定,所以进程的执行以不可预知的速度前进
操作系统的发展与分类
操作系统的运行机制和体系结构
操作系统内核在计算机系统中的层次结构
操作系统体系结构类比
操作系统用户态和核心态的转换
中断与异常
系统调用
库函数与系统调用的区别
系统调用的执行过程
本文作者:YoProgrammer
本文链接:https://www.cnblogs.com/sakanayo/p/16693223.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库