操作系统 | 了解操作系统的基础知识

Posted chaochao️

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统 | 了解操作系统的基础知识相关的知识,希望对你有一定的参考价值。

创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜   

 

目录

操作系统基础知识

操作系统架层次结构

操作系统的结构

顶级会议

学术界

意义

操作系统的启动

系统调用、异常、中断

​ 三者的区别

跨越操作系统边界的开销

​ 思考:为什么应用程序不能直接访问外设,而要先访问操作系统?


 操作系统基础知识

用户角度

操作系统:控制软件:管理应用程序,为应用程序提供服务,杀死应用程序。

资源分配角度

操作系统的实现了资源管理;管理外设、分配资源

操作系统架层次结构

硬件之上:

应用程序之下:为应用软件提供服务支撑

Linux、Windows、android的界面:属于外壳(shell),而不是内核(kernel);kernel是研究重点,在shell之下。

内部组件

Kernel包括

CPU调度器、物理内存管理、虚拟内存管理、文件系统管理、中断处理与设备驱动

OS Kernel的特征

OS Kernel的特征

        并发(指一段时间内多个程序运行;而并行是指一个时间点上多个程序运行,要求多个CPU):计算机系统中同时存在多个运行的程序,需要OS管理和调度

共享:“同时”访问 或 互斥共享

虚拟:利用多道程序设计技术,让每一个用户都觉得有一个计算机专门为他服务

异步:程序的执行不是一步到底的,而是走走停停,向前推进的速度不可预知。但只要运行环境相同,OS要保证程序运行的结果也相同

操作系统的结构

(1)简单的操作系统:

MS-DOS 不分模块的单体内核 (内部通过函数调用访问,缺点:复杂,紧耦合,易受攻击)

(2)微内核

尽可能把内核功能移植到用户空间,缺点性能低

(3)外核

内核分为一块,一块负责和硬件打交道,另一部分和应用打交道。

(4)虚拟机

VMs(虚拟机)->VMM(虚拟机监视器)->物理机硬件,多操作系统共享硬件资源

顶级会议

SOSP、USENIX

学术界

ACM、IEEE、USENIX、CCF

意义

操作系统是系统安全的基础;

权衡:空间和时间;性能和可预测性;公平和性能。

操作系统的启动

CPU、I/O、内存

操作系统先存放在DISK(存放OS)、Bios(基本I/O处理系统)

Bootloader -->加载OS

POST(加电自检)-->寻找显卡和执行BIOS

系统调用、异常、中断

系统调用:来源于应用程序,应用程序主动向操作系统发出服务请求

异常:来源于不良的应用程序,非法指令或者其他的处理状态

中断:来源于外设,来自不同的硬件设备的计时器和网络的中断

中断的处理机制:

1.硬件:设置中断标记(CPU初始化)将内部、外部事件设置中断标记,中断事件的ID

2.软件:操作系统来保存当前处理状态,然后根据中断号中断读物程序处理,随后清楚标记,最后恢复之前保存的处理状态

异常的处理机制:

1.异常编号:保存现场,随后进行异常处理,杀死产生的一场程序,重新执行异常指令,最后恢复现场。

系统调用的处理机制:

1.-一条指令会触发一个系统调用。应用程序调用printf()时,会触发系统调用write()

2.专门的API-->系统调用端口。

系统调用:触发CPU从用户态到内核态的转换,切换程序和内核的堆栈,需要一定的开销

3.

 三者的区别

1.源头不同

中断来源于外设(鼠标、键盘、网卡、声卡、显卡等);异常来源于应用程序意想不到的行为;系统调用来源于应用程序请求操作提供服务。

2.处理时间不同。

中断和异常为异步(异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位),系统调用为异步或者同步。

3.响应不同

中断是持续的,对用户应用程序是透明的;异步是杀死或者重新执行意想不到的程序指令;系统调用的响应是等待或者持续的。

跨越操作系统边界的开销

用户态:操作系统运行中,CPU处于的特权级别,不能直接执行特权指令

内核态:操作系统运行中,CPU处于的特权级别,可以执行任何一条指令

 思考:为什么应用程序不能直接访问外设,而要先访问操作系统?

在计算机运行中,内核时被信任的第三方,只有内核可以执行特权指令,同时为了方便应用程序。

创作不易,客官点个赞,评论一下吧!超超和你一起加油❤😜  

以上是关于操作系统 | 了解操作系统的基础知识的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础之简史了解

系统移植知识点总结

关于Linux系统,这些知识你都了解吗?

了解Java基础原理

Java基础了解

关于Linux知识你了解多少呢?