• 操作系统(一)概述&基本组成&运行机制


    一、概述

            1.相关定义

                    ①操作系统是系统软件,而不是硬件

                    ②负责管理协调软硬件等计算机资源的工作

                    ③为上层的应用程序、用户提供接口和环境

                            进程:程序执行过程,执行前需要将该程序放入内存中,接着被CPU处理

            2.提供的接口(对用户/程序)

                    命令接口:允许用户直接使用

                            分为:联机命令接口:用户说一句系统做一句(交互式命令)

                                       脱机命令接口:用户说一堆系统做一堆(批处理命令)

                    程序接口:允许用户通过程序间接使用

                            动态链接dll文件

                    GUI:用户图形接口

                            易混淆:系统调用=系统调用命令=广义指令

            3.资源管理和扩展(对硬件)

                    没有任何软件支持的计算机称为“裸机

                    覆盖了软件的机器称为:扩充机器(虚拟机)

    二、操作系统的特征

            1.并发

                    两个/多个事件在统一时间间隔内发生(宏观是同时发生,微观上是交替发生

                    操作系统程序并发是同时诞生的。

                    易混淆:并行-->多个事件在同一时刻发生

            2.共享

                    系统中的资源可以供多个并发执行的程序共同使用

                            分为:互斥共享(仅允许一个) & 同时共享(微观上可能是交替访问)

                    并发和共享的关系(互为条件

                            若失去并发性,则系统共享性将失去意义

                            若失去共享性,则系统并发性将无法实现

            3.虚拟

                    将物理上的实体变为(多个)逻辑上的对应物

                            典型案例:虚拟内存--使用的空分复用技术

                                              虚拟处理器--多线程(时分复用

                            虚拟性服务于并发性

            4.异步

                    多程序并发执行,但是由于资源有限,进程的执行不是一贯到底的(以不可预知的速度向前推进--可能资源被锁定了,需要等待资源释放)

                    系统的并发性才可能导致异步性

    三、操作系统的发展与分类

            1.手工操作阶段

                    使用纸带作为程序载体和输出结果载体

                    缺点:用户独占全机,人机速度矛盾-->资源利用率低。

            2.批处理阶段

                    单道批处理系统

                            引入脱机输入/输出技术(载体为磁带),由监督程序(操作系统的雏形)负责控制输入、输出

                            需要先使用外围机将纸带转换为磁带,再将磁带输入

                            优点:一定程度上缓解了人机速度矛盾,提升了资源利用率

                            缺点:同一时刻仅单个程序在执行,CPU有大量时间是空闲的,资源利用率依旧底下

                    多道批处理系统

                            计算机从磁带中读取多道程序。由终端技术实现这些程序的并发执行。(操作系统正式诞生

                            优点:程序并发执行,共享计算机资源,极大的提升了资源利用率。

                            缺点:用户响应时间过长,无人机交互功能。

            3.分时操作系统

                    计算机以时间片为单位轮流为各个用户/作业服务。在时间片内用户可以与计算机进行交互。

                    优点:解决了人机交互问题,允许多个用户同时使用同一台计算机(各用户相互独立)

                    缺点:无法优先处理紧急任务

            4.实时操作系统

                    优点:可以优先响应紧急任务

                            要求要在严格的时限条件内处理完事件

                            主要特点:及时性、可靠性

                    分为: 硬实时系统:绝对严格在规定时间内处理完成

                                软实时系统:偶尔违反时间规定

            5.其他操作系统

                    网络操作系统

                    分布式操作系统

                    个人计算机系统

    四、操作系统的运行机制和体系结构

            1.运行机制

                    指令:CPU能识别、执行的基本命令

                            高级程序语言需要通过翻译转换为指令(可能一条语言对应多条指令)

                    指令分类

                            特权指令:不允许普通用户程序使用

                            非特权指令:普通指令

                    处理器状态

                            用户态(目态):仅可执行非特权指令

                            核心态(管态):可以执行特权指令非特权指令 

                             用程序状态寄存器(PSW)中的标志位来确认(0为用户态、1为核心态)

                    程序分类

                            内核程序:系统资源的管理者,运行在核心态

                            应用程序:运行在用户态

            2.操作系统内核

                    内核是计算机的底层软件,操作系统中最基本、最核心的部分。以内核程序的形式实现

    操作系统非内核功能
    内核进程管理、存储器管理、设备管理等
    时钟管理中断处理原语(设备驱动、CPU切换等)<具有原子性>

            3.操作系统的体系结构

                    大内核

                            将操作系统的主要功能模块全部作为内核,运行在核心态

                            优点:性能高

                            缺点:内核代码庞大,结构复杂,不利于维护

                    微内核

                            只保留基本功能在内核

                            优点:内核功能少、结构清晰、方便维护

                            缺点:需要频繁的在核心态和用户态之间切换,性能低

    五、中断和异常

            1.中断概念和作用

                    当中断发生后,CPU立即进入核心态;当前进程暂停运行,由操作系统内核进行处理

                    中断可以使CPU从用户态切换为核心态,使操作系统拥有计算机控制权。

                            用户态->核心态是实现中断的唯一途径

                            核心态->用户态通过执行一个特殊指令,将程序状态字(psw)标志设置为用户态

            2.中断分类

                    区分方式:信号的来源,是否与当前执行的指令有关

                    内中断

                            其他分类方式:陷入(有意为之的异常)、故障(由错误条件引起的)、终止(不可恢复的致命错误);

                            信号来自CPU内部,与当前执行的指令有关

                            自愿中断

                                    指令中断:系统调用访问指令

                            强迫中断

                                    硬件故障:缺页

                                    软件故障:整数÷0

                    外中断

                            中断;信号来自CPU外部,与当前执行的指令无关

                                    外设请求:I/O发送的中断信号

                                    人工干预:用户强制终止一个进程

            3.外中断的处理过程

                    ①执行完指令后,CPU会检查当前是否有外部中断信号

                    ②如检测到外部中断信号,则需要保护被中断进程的CPU环境

                    ③根据中断信号类型转入对应的中断处理程序

                    ④恢复原进程的CPU环境并退出中断

    六、系统调用

            可以理解为一种供应用程序调用的特殊函数;程序接口由系统调用组成

            应用程序通过系统调用请求计算机资源,可以保证系统的稳定性和安全性,防止非法操作。

            分类(按功能)

                    设备管理:设备的请求/释放/启动

                    文件管理:文件的读/写/创建/删除

                    进程控制:进程的创建/撤销/阻塞/唤醒

                    进程通信:进程之间的消息/信号传递

                    内存管理:内存的分配/回收

            系统调用需要一些特权指令来实现,因此其运行在核心态

            系统调用和库函数

                    如果使用高级程序语言,则需要通过库函数来获取系统调用(进行过封装)

    普通程序直接使用系统调用 / 使用库函数(并非所有库函数都涉及系统调用
    编程预言向上提供库函数(封装系统调用,隐藏细节)
    操作系统向上提供系统调用
    裸机

            系统调用的过程

                    高级语言  --编译-->  汇编语言  --系统调用-->

                    高级语言和汇编语言运行在用户态,系统调用运行在核心态

                    传递系统调用参数 --> 执行陷入命令(用户态) -->执行系统调用相关服务(核心态)-->返回应用程序

                            陷入指令执行在用户态,执行后会立刻引起一个内中断,从而使CPU进入核心态

                            陷入指令是唯一一个只能在用户态,不能在核心态下执行的指令

  • 相关阅读:
    【JavaWeb】-- idea下使用TomCat新建javaweb项目
    Pinia(二)了解和使用Store
    保姆级 Keras 实现 Faster R-CNN 十四 (预测)
    FlutterAcivity 包已导入 但是仍然爆红
    Kubernetes 集群日志管理
    java-net-php-python-ssh电动车销售系统计算机毕业设计程序
    Linux dup和dup2
    linux安装Samba
    Spring Boot Security配置用户认证和资源授权
    Mybatis笔记框架(持续更新~~~)
  • 原文地址:https://blog.csdn.net/weixin_37878740/article/details/125309562