• 操作系统学习笔记_1 计算机系统的运行和结构


    介绍

    操作系统是什么?

    计算机结构大概分为四层:

    • 用户
    • 应用程序
    • 操作系统
    • 硬件

    操作系统是一类系统软件,调度硬件资源,合理分配管理软件(因此操作系统又被称作资源管理器(resource manager))。

    image-20221026211255236

    程序要运行首先要被放到内存中,然后才能被 CPU 处理;运行中的程序叫进程。

    双击打开 QQ.exe,对应进程就会被放到内存中;

    QQ 正常运行过程中,对应进程被 CPU 处理。

    QQ 若想调用摄像头等,操作系统会把相应硬件分配给他。

    计算机还会提供用户和硬件之间的接口。主要分为三种:GUI 接口,命令接口,程序接口。

    联机/交互式命令接口:用户说一句,系统做一句。(cmd)

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

    程序接口:通过程序才能调用。(.dll)

    只有硬件的计算机叫裸机;操作系统将硬件资源转换为通用的、强大的虚拟形式,有时操作系统也被称为虚拟机。操作系统提供几百个系统调用(system call)供其他应用程序使用,实现运行程序、访问内存和设备等操作,也可以说操作系统为其他应用程序提供了一个标准库(standard library)。

    操作系统几大特征

    操作系统围绕以下几大主题展开:

    • 虚拟化(virtualize):尽管一般只有一个 CPU,但是能同时进行多个进程,造成多个 CPU 的假象。多个程序实例同时用到一片内存地址时,却能各运行各的,值互不干扰。实际上每个进程是在访问自己的私有虚拟内存空间(virtual address space),虚拟内存通过一定的规则映射到物理内存上,运行中的程序的物理内存是完全独立的。
    • 并发(concurrency)**不是并行!并行是同时发生,并发是交替发生。**单核计算机就会采用并发的程序运行方式。现在尽管都有四核计算机,可以进行4个程序的并行操作,但是并发仍然很重要。
    • 共享:系统中的某些资源供多个进程使用。

    ​ 互斥型共享就是一次只能一个程序用,如摄像头;

    ​ 同时型共享就是两个进程交替使用,如 QQ 微信 同时发送文件。

    • 异步性:并发执行的程序有时候会卡住。比如 AB 程序都要用同一个地址,A先用了,B用的时候就要等A用完释放才能用。

    操作系统历史

    手工操作阶段:用户手工打点,给机器。人机协调不均衡,资源分配不均匀。

    批处理阶段——单道批处理系统:用户打好的点交给磁带,磁带读入计算机速度快得多(监督程序,早期的操作系统)。但是利用率仍然很低。

    批处理阶段——多道批处理系统:每次内存中同时读入多个程序。多个程序并发执行,有了”中断“的概念。但是用户在程序执行的时候没法干涉,人机交互很差。

    image-20221202180444486

    分时操作系统:计算机以时间片为单位轮流给所有用户提供服务。用户的请求可以被及时响应,解决了人机交互问题;各个用户之间也感受不到其他用户的存在。但是众生平等,没有优先级。

    实时操作系统:优先度高的任务可以先被处理,并且必须在给定的时限内完成任务。

    image-20221202181100161

    OS 运行机制和体系结构

    计算机中的指令有的安全(加减乘除运算),有的危险一点(清空内存)。因此需要通过权限控制限制用户能执行的指令。

    具体实现方法为:CPU 处于核心态(管态)时可以执行所有指令;处于用户态(目态)时只能执行非特权指令。

    内核程序是系统的管理者,可以执行所有指令,运行在核心态;

    应用程序只能执行非特权指令,运行在用户态。

    image-20221202214904545

    操作系统的内核包含橙黄两部分:大内核。

    只包含黄色部分:微内核。

    各自的缺点:大内核组织结构混乱,难以维护;微内核频发切换,性能低。

  • 相关阅读:
    『现学现忘』Git基础 — 15、blob对象详解
    探索Redis与MySQL的双写问题
    优麒麟安装完后设置root密码
    Smart UI Web 16.0.1 WebComponents htmlelements Crack
    MybatisPlus 从零开始 全面学习!
    腾讯数字生态大会详解腾讯云全球化发展规划,全真互联为重要发力点
    思维导图解读《思考,快与慢》
    【ES6知识】Iterator迭代器与 class类
    C#SOLID原则(面向对象设计的准则)
    计算机竞赛 深度学习 python opencv 动物识别与检测
  • 原文地址:https://blog.csdn.net/jtwqwq/article/details/126884332