操作系统自学笔记(一) 操作系统概述

网友投稿 622 2022-09-10

操作系统自学笔记(一) 操作系统概述

操作系统自学笔记(一) 操作系统概述

仅为自学时的笔记, 如有问题请多指教

目录

​​操作系统的启动​​

​​操作系统的"定位"​​

​​操作系统的特征​​

​​运行机制​​

​​体系结构 ​​

​​中断​​

​​中断的分类​​

​​外中断处理过程​​

​​系统调用​​

​​系统调用与库函数的区别​​

​​ 过程​​

​​感悟​​

操作系统的启动

DISK: 存放OS

BIOS: 基本I/O处理系统

POST(加电自检)寻找显卡, 执行BIOS

BIOS从某个特定的地址开始执行

Bootloader一般是在放在硬盘的第一个主引导扇区

BIOS将Bootloader从DIST放到内存中,Bootloader将OS加载到内存中

以X86为例

进程 是一个程序的执行过程。执行前需要将该程序放到内存中,才能被CPU处理

操作系统的"定位"

命令接口 (直接使用)

联机命令接口(交互式命令接口)比如cmd中逐行执行的命令脱机命令接口(批处理命令接口)比如.bat脚本

程序接口 如程序调用的.dll文件,用户通过程序间接调用, 由一组系统调用(广义指令)组成(程序接口=系统调用)

有关系统调用可以参照下面

操作系统的特征

并发:计算机系统中存在多个同时运行的程序, 需要OS管理和调度共享:"同时"访问 / 互斥共享虚拟:将硬件层面抽象,CPU→进程  磁盘→文件  内存→地址空间 , 用户对于计算机产生一种独自占有的感觉异步:程序的执行走走停停,速度不可预知; 但运行环境相同, OS需保证运行结果也相同

并发与共享相互共存

并发:指两个或多个事件在同一时间间隔内发生。宏观上同时发生, 微观上是交替发生的。并行:指两个或多个事件在同一时刻同时发生。

体系结构

内核功能划分的不同方式, 对应着不同的体系结构: 大内核与微内核

操作系统的体系结构与企业管理相似 内核就是企业的管理层,负责一些重要的工作。只有管理层才能执行特权指令,普通员工只能执行非特权指令。用户态、核心态之间的切换相当于普通员工和管理层之间的工作交接

大内核:企业初创时体量不大,管理层的人会负责大部分的事情。优点是效率高;缺点是组织结构混乱,难以维护。微内核:随着企业体量越来越大,管理层只负责最核心的一些工作。优点是组织结构清晰,方便维护;缺点是效率低。

中断

当中断发生时,CPU立即进入核心态当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理对于不同的中断信号,会进行不同的处理

发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。

中断可以使CPU从用户态→核心态 ,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

“核心态→用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”

外中断处理过程

执行完每个指令之后,CPU都要检查当前是否有外部中断信号如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSw、程序计数器Pc、各种通用寄存器)根据中断信号类型转入相应的中断处理程序恢复原进程的CPU环境并退出中断,返回原进程继续往下执行

系统调用

“系统调用” 是操作系统提供给应用程序(程序员/编程人员〉使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。

例如:设备管理, 文件管理, 进程控制, 进程通信, 内存管理

凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

过程

注意:

陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,从而CPU进入核心态发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令(前面我们知道核心态既可以执行特权指令也可以执行非特权指令,但这里的陷入指令无法执行)

以Linux为例,下面这类的即为系统调用号,可以告诉操作系统执行相应的处理程序

#define __NR_read 0#define __NR_write 1#define __NR_open 2#define __NR_close 3#define __NR_stat 4#define __NR_fstat 5#define __NR_lstat 6#define __NR_poll 7

感悟

凡是涉及共享资源或者直接影响其他进程的操作, 牵连到系统安全性的, 必须通过系统调用的方式,请求操作系统介入

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python lanbda匿名函数(20)(python官网)
下一篇:PowerShell 创建SCCM计算机或用户的集合并导入指定计算机、用户名单
相关文章

 发表评论

暂时没有评论,来抢沙发吧~