首页 > 其他分享 >期末复习——操作系统概述 chapter(0+1)

期末复习——操作系统概述 chapter(0+1)

时间:2023-02-15 00:44:05浏览次数:51  
标签:chapter 复习 -- 内存 系统 内核 OS CPU 操作系统

MEMO

  1. OS:管理计算机硬件的软件;为应用程序提供基础;充当计算机硬件与用户之间的媒介。存于磁盘。
    一个一直运行在计算机上的程序(也叫kernel内核);
  2. 计算机系统 可以粗分为:硬件、OS、应用程序、用户;
    or 硬件、软件、数据。
  3. 计算机逻辑层次:应用程序-->系统程序-->OS-->硬件
  4. 程序:OS(kernel内核)、系统程序(不是内核一部分)、应用程序;
    5.多核单CPU:一般情况,多核间通信共享内存。
    多个单核CPU:每个CPU较为独立。
  5. L1高速缓存:内置于CPU核

OS 功能

  • 用户视角:便于使用、资源管理
  • 系统视角:资源分配器;控制程序(管理用户程序执行)
    多道程序设计:通过合理安排使得CPU总有一个执行任务,提高CPU利用率。

因为要实现多道程序设计,OS在内存中要同时保存多个任务-->作业池 job pool

  • 虚拟内存优点:用户可以执行内存大于物理内存的程序。

OS执行

现代OS是中断驱动的,陷阱(异常)是软件生成中断(可能因为一些/0错误、用户特定请求)

  • 用户模式
  • 内核模式:遇到陷阱or中断

内核存储结构

  • 链表、堆栈、队列
  • 树(红黑树)
  • 哈希函数、哈希表
  • 位图:第i位与第i个资源有关。

计算机系统组成

存储结构

  • 内存:(主存)CPU能访问的存储空间,易失性,断电后数据消失。ROM、DRAM、RAM、
  • 外存:(辅存)断电后仍然可以保存数据,磁盘、硬盘、固态磁盘(快于磁盘)

寄存器-->高速缓存L1、L2……-->主存-->固态存储-->硬盘、、、

I/O结构

  • 当程序要从硬盘读取一个文件时,先检查内存中是否有数据。若没有数据,则执行实际I/O。I/O操作执行时,用户线程将阻塞等待数据从硬盘写到内存中。对于用户来说线程是被阻塞的。
    • 不中断:CPU忙等,不断轮询访问是否结束I/O,浪费CPU
    • 有中断:CPU调度其他线程,I/O执行完之后,原线程发中断信号通知CPU,然后恢复进程(or线程)上下文信息。

计算机体系结构

  • 单处理器系统:系统只有1个通用CPU
  • 多处理器系统
  • 集群系统

多处理器系统

也叫并行系统、多核系统。

  • 优点

    1. 增加吞吐量:短期内完成更多工作
    2. 规模经济:共享数据等待
    3. 增加可靠性:如果某个核故障,可顶替
  • 非对称处理系统(主从系统):高可靠性(从处理器向主处理器要任务or做预先规定任务)

  • 对称处理系统SMP:现代大多OS支持,每个处理器都参与。高效

集群系统

≥2个独立系统组成,每个系统可单可多组合。松耦合。

  • 对称集群:都运行程序,互相监督
    复杂的应用调试
  • 非对称集群:一台跑程序、一台热备份(监视活动服务器)
    缺点:一台过度利用,一台没充分利用

提供高可用性服务,相比单核、SMP有更强大的计算能力-->并行计算

OS服务

  1. 提供用户功能
    1. 用户界面:CLI命令行界面 or 批处理界面 e.g.GUI图形用户界面
    2. 程序执行:程序加载到内存中运行
    3. I/O操作
    4. 文件系统操作
    5. 通信:进程间(共享内存、消息传递)、网络连接的不同计算机之间
    6. 错误检验
  2. 确保系统本身高效
    1. 资源分配:CPU周期、I/O设备……
    2. 记账:记录用户使用资源的类型和数量
    3. 保护与安全

系统调用

系统调用提供OS服务接口,与kernel直接相关,仅在kernel态运行。。通过中断-->向内核请求-->获取内核服务。通常用C/C++/汇编语言编写(fast)。
API应用编程接口,一系列定义好的函数e.g.printf()、read(),提高程序可移植性。

类型 Windows UNIX
进程控制 CreateProcess() fork()
CreateProcess() fork()
WaitForSingleObject() wait()
文件管理 CreateFile() open()
ReadFile() read()
WriteFile() write()
CloseHandle() close()
设备管理 - -
信息维护 - -
通信 CreatePipe() pipe()
CreateFileMapping() shm_open()
MapViewOfFile() mmap()

向OS传递参数

  1. 利用register寄存器
  2. 存在块or表中,寄存器存储 块or表 的地址
  3. 压用堆栈,利用OS弹出

系统程序

也叫系统工具,处于应用程序与OS交界层。
种类1. 文件管理 2. 状态信息(时间、内存、磁盘空间……) 3. 文件修改 4. 程序语言支持 5. 程序加载执行 6. 通信 7. 后台服务

OS设计

用户目标and系统目标

策略与机制分离

  • 策略policy:what to do
  • 机制mechanism:how to do,实现

这样“实现”对功能不敏感更加可取,避免每次策略policy的改变要重定义很多很多东西。(这个好理解,和各种分层、函数道理一样)

OS常见结构

简单结构

MS-DOS:没有很好区分功能的接口and层次。
早期UNIX:两部分:内核+系统程序。发展成单片结构(UNIX、Linux、Windows仍采用简单单片结构)

分层方法

自顶向下,简化构造和调试。向上隐藏具体实现。
难点:合理定义各层、效率较差。

微内核

Mach OS。消息传递通信模型,都在内核内完成,大多数服务作为用户进程运行,而不是内核进程。so一个服务出错不会影响OS其他部分。
优点:利于拓展。可移植性强

可加载的内核模块

现代UNIX(Solaris、Linux、Mac OS)和 Windows实现

  • 核心:内核提供核心服务,其他服务在内核运行时动态实现。

混合系统

Mac OS X 和 两个移动操作系统:iOS、Android(有Dalvik虚拟机)

OS调试

故障分析

  • 进程故障-->写到日志文件,OS也进行核心转储 core dump,捕获进程内存,保存到另一文件以便以后分析。
  • 内核故障called崩溃 crash-->错误信息保存到日志文件,内存状态保存到崩溃转储 crash dump

OS生成

SYSGEN程序,获取硬件配置

系统引导

生成OS后,硬件需要知道内核在哪。--> 引导程序汇编语言编写,存放于固件,“固化的软件”,不是外存!!OS存放于磁盘,e.g.只读内存ROM。
引导程序定位内核,加载到内核执行。e.g.GRUB引导Linux系统。

  • 开机/重启时运行,初始化各组件,定位OS,加载到内存。

标签:chapter,复习,--,内存,系统,内核,OS,CPU,操作系统
From: https://www.cnblogs.com/sectumsempra/p/17121020.html

相关文章

  • 操作系统
    操作系统的概述重点:操作系统是硬件和语言处理程序之间的中间层一些操作系统的特点重点:嵌入式炒作系统,要求微型化,可定制,易移植,实时性,可靠性注意区分定制化和易移......
  • 期末复习——网络层
    网络层最后一遍复习的时候再回头整理细节关注如何将数据包一路发送到接收方,主机之间的逻辑通信。中间可能要经过许多跳hop中间路由器。网络层是处理端到端通信的最底......
  • Javase基础复习-day8常用API
    1.API1.1API概述什么是APIAPI(ApplicationProgrammingInterface):应用程序编程接口java中的API指的就是JDK中提供的各种功能的Java类,这些类将底层的实现......
  • 迅为iTOP-3A5000龙芯开发板安装UOS操作系统
        3A5000板卡采用全国产龙芯3A5000处理器,基于龙芯自主指令系统(LoongArch®),市面上龙芯3A5000主板价格都在上万元,可以说是非常贵了, 迅为全新推出了款千元内的iT......
  • 主流操作系统前10
    Windows:Windows10、Windows8.1、Windows8、Windows7、WindowsVista、WindowsXP、WindowsServer2019、WindowsServer2016、WindowsServer2012、WindowsServe......
  • 复习
    概念模型评测混淆矩阵预测:1预测:0真实:1TruePositive(TP)FalseNegative(FN)真实:0FalsePoisitive(FP)TrueNegative(TN)准确率:预测正确......
  • rxjava之复习
    1.rxjava之操作符1).转换类操作符(mapflatMapconcatMapflatMapIterableswitchMapscangroupBy...);map及flatMap以及concatMap区别?map和flatMap都可以对RxJava传入......
  • okhttp之复习
    一okhttp 1.简介:官方简介:OkHttp是一个默认高效的HTTP客户端1、HTTP2支持允许对同一主机的所有请求共享一个套接字。2、透明GZIP缩小了下载大小。3、连接池减少了请求......
  • 操作系统——随笔
    操作系统(部分笔记——摘选自王道考研视频内容)1操作系统的基本概念1.1操作系统的概念、功能和目标1.1.1操作系统的定义操作系统是指控制和管理整个计算机系统的硬......
  • 9.4 操作系统和高级编程语言使硬件抽象化
    通过使用操作系统提供的系统调用,程序员就没必要编写直接控制硬件的程序了。通过使用高级编程语言,有时甚至也无需考虑系统调用的存在。这是因为操作系统和高级编程语言能够......