<刷题笔记>408计算机学科专业基础综合_操作系统_第一章_计算机系统概述_第一篇

2023-11-12

  • 操作系统是一种系统软件

  • 通用软件:普通大众都会使用的,如office,迅雷

  • 专用软件:某些领域的专业人士使用的,如AutoCAD,logic Pro

  • 系统软件:计算机中负责管理,运行,控制和维护计算机系统资源的软件。如,操作系统,数据库管理系统(DBMS),语言处理程序(编译程序是把高级语言编译成汇编语言,或直接编译成机器语言,是用来处理高级语言的,汇编程序负责把汇编语言翻译成机器语言),服务性程序(程序在运行之前是需要装入到内容中的,装入这个动作就是由装入程序完成的,他就是典型的服务性程序),标准库程序(标准输入输出等printf,scanf)

  • 应用软件:利用计算机软件,硬件资源为解决各种实际应用问题而编制的程序。如,微信,office

  • 软件包:是指具有特定的功能,用来完成特定任务的一组程序(windows安装软件的时候,这个软件的背后有一组程序)

  • 操作系统是对计算机资源进行管理的软件

  • Windows的“任务管理器” Ctrl+Alt+Del

  • 软件=程序+其他相关文件等,如,一个游戏软件包括 (x.exe) 和其他图片 (x.bmp)等,音效(x.wav等)等附件,那么这个程序(x.exe)称作“应用程序”,而它与其他文件(图片,音效等)在一起合称“软件”

  • 软件,硬件都属于计算机资源,除了软件和硬件,操作系统还负责对文件的管理,而文件≠软件,但文件依然属于计算机资源

  • 源程序资源不是操作系统应该管理的,源程序,即源代码文件,由程序员进行管理,c语言源程序:x.c文件,Java源程序:x.java文件

  • 第二章—进程管理,主要探讨操作系统对CPU这种资源的管理

  • 第三章—内存管理,主要探讨操作系统对内存这种资源的管理

  • 第四章—文件管理,主要探讨操作系统如何组织文件的数据,一个文件拆分,如何被放在磁盘里,也会探讨操作系统对外存资源的管理,因为文件存在外存,存在磁盘里面,外存也属于第五章的内容设备管理。

  • 第五章—输入/输出管理(设备管理)

  • 管理计算机裸机是操作系统关心的问题

  • 管理计算机系统资源是操作系统关心的问题

  • 设计,提供用户程序与硬件系统的界面是操作系统关心的问题

    • 界面,接口—interface的两种常见翻译
    • 操作系统提供给用户程序使用的接口:系统调用
    • 操作系统提供给用户直接使用的接口:命令接口,GUI
  • 高级程序设计语言的编译器不是操作系统关心的问题

    • 编译器要在操作系统之上,手动配置和安装
  • 操作系统的基本功能是控制和管理系统内的各种资源

  • ①.1950年代早期第一个操作系统诞生(批处理操作系统)

  • ②.后来某个时候第一个支持用户交互的操作系统

    • 提供用户界面方便用户使用
  • ③.1970年代早期第一个GUI诞生 (施乐公司发明的)

    • 提供方便的可视化编辑程序 (word,ppt等)
  • ④.1983年互联网诞生

    • 提供功能强大的网络管理工具
  • 现代操作系统中最基本的两个特征是并发和共享

    • 在单核电脑中,优酷和qq,如果不能并发,那么刷剧时不能和朋友聊天,聊天时不能刷剧;
    • 并发特性,在用户看来,两个进程同时执行(宏观上);在操作系统看来,两个进程交替的使用CPU,硬盘等系统资源(微观上),此时的交替地 就是共享特性
    • 共享:播放本地电影(读硬盘)+QQ传文件(写硬盘),宏观上,在同时使用系统资源,或者说是在共享地使用系统资源
    • 如果没有共享特性,那么并发特性一定没有办法实现
    • 如果没有并发特性,那么共享特性就失去了它存在的意义
    • 虚拟,物理上的一个实体,把它虚拟变成逻辑上的多个实体,在单核电脑中,物理上一个CPU,但是逻辑上,优酷和qq都有一个专门的CPU分别为这俩服务,就是虚拟CPU,如果没有并发性,虚拟就失去了它存在的意义
  • 虚拟,异步特性依赖于并发特性

  • 现代操作系统中的基本特征是并发,共享,虚拟,异步

  • 并发:宏观上同时,微观上交替发生

  • 并行:微观上同时进行

  • 提高单机资源利用率的关键技术是多道程序设计技术

    • 多道程序设计技术----从单道程序->多道程序,单机资源利用率大幅提升
  • 脱机技术—脱离主机的控制,提前将作业数据输入/输出到磁带,用于缓和I/O设备与主机之间的速度矛盾

  • 假脱机技术—将独占设备改造为共享设备,第五章学

  • 虚拟技术—如虚拟内存技术,可以增加并发度,第三章学

  • 交换技术—增加并发度,第三章学

  • 批处理系统的主要缺点是无交互能力

  • 操作系统的发展

    • 手工操作阶段
      • 主要矛盾:人机速度矛盾导致资源利用率低
    • 批处理阶段
      • 单道批处理(读入完成输出,读入完成输出…),引入脱机输入/输出技术(磁带),监督程序(操作系统的雏形)主要矛盾:CPU等待I/O导致资源利用率低
      • 多道批处理,引入中断技术,主要矛盾:无交互性。只能通过作业说明书交互
    • 分时系统
      • 引入按时间片轮转的分时技术,允许多个用户与计算机直接交互
    • 实时系统
    • PC操作系统
  • 通用操作系统:平时使用的面向大众的,例如Windows,安卓等

    • 在通用操作系统管理下的计算机上运行程序,不需要向操作系统预定运行时间。例如,打开微信,直接可以使用
    • 在通用操作系统管理下的计算机上运行程序,需要确定起始地址,并从这个地址开始执行
  • 专用操作系统:给火箭使用的,天河一号等。实时性比较高,要提前预定运行时间

    • 在专用操作系统管理下的计算机上运行程序,需要向操作系统预定运行时间。
  • 操作系统不需要提供高级程序设计语言的编译器

    • Windows中需要自己配置环境
  • 管理计算机系统资源是操作系统关心的主要问题

  • 批处理并不要求需要大内存,内存下也行,

    • 引入批处理,内存资源的利用率得到提高
  • 特权指令必须在核心态才能运行

    • 题目中常见的几种特权指令:输入输出指令(I/O指令),开中断指令,关中断指令,修改PSW的指令
    • 注意:访管指令(trap指令)不是特权指令
  • 通道技术:通道是一种硬件(CPU的小马仔),通道可以执行I/O指令,从而管理I/O设备的工作

  • 引入多道程序设计技术的最主要原因是提高各种硬件资源的利用率

  • 用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和陷入(trap)指令

  • trap指令:或陷入指令,陷阱指令。在系统调用中,trap负责由用户态转换为内核态

  • 中断:与硬件相关,外部设备通过发送中断信号通知CPU抽空处理设备请求

  • 用户程序设计时,使用系统调用命令,该命令经过编译后,不能形成屏蔽中断指令

    • 如果我们在用户程序当中可以使用屏蔽中断指令的话,那就意味着我们的用户程序永远不可能被打断,其他用户程序要和它并发争抢CPU资源就没办法实现了,十分危险,所以在用户程序当中最后形成的不可能是屏蔽中断指令
  • 屏蔽中断指令:实现关中断,使当前操作不可被中断,相当于一个门

  • 命令接口(允许用户直接使用)

    • 联机命令接口:用户说一句,系统做一句
    • 脱机命令接口:用户说一堆,系统做一堆
  • 系统调用功能是操作系统向用户程序提供的接口

  • 程序接口(允许用户通过程序间接使用):由一组系统调用组成(程序接口=系统调用)

  • 用户及其应用程序和应用系统是通过系统调用提供的支持和服务来使用系统资源完成其操作的

    • 因为系统资源十分重要,这个权限一定不能交给用户,要由操作系统来管理
  • 早期计算机使用命令行界面,需要用户记住各种指令,后来由苹果公司第一个推出了GUI,操作直观,使计算机使用更加简单

  • 编译源程序:把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式。如C语言翻译为二进制文件的过程

  • 中断处理是操作系统必须提供的功能

    • 计算机的各种错误的处理,进程切换等都需要中断处理。无中断,无并发。
  • 系统调用存在的目的:

    • 目的:为了使系统更稳定,安全,要防止小白用户,恶意用户进行非法的越权操作
    • 解决方案:将系统的核心功能封装为系统调用
    • 问题:系统调用过程需要用户态与核心态的切换,降低效率
    • 在一些专业性较强,实时性要求较高的操作系统中,可不提供系统调用,以换取效率,如NASA使用的VxWorks系统(在火箭,卫星上使用)
  • 由访管指令(trap指令)引起的内中断就是“访管中断”

  • 用户程序在用户态下要使用特权指令引起的中断属于软件中断(software interrupt)

  • 内中断(也称异常,例外):与当前执行的指令有关,中断信号来自CPU内部

    • 或:软件中断,软中断
    • 陷阱,陷入(trap):由陷入指令引发,是应用程序故意引发的
    • 故障(fault):由错误条件引起的,可能被内核程序修复。内核程序修复故障后会把CPU使用权还给应用程序,让它继续执行下去。如:缺页故障。
    • 终止(abort):由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU使用权还给引发终止的应用程序,而是直接终止该应用程序。如:整数除0,非法使用特权指令
  • 外中断(也称“中断”):与当前执行的指令无关,中断信号来自CPU外部

    • 或:硬件中断,硬中断
    • 时钟中断
    • I/O中断请求
  • 内核可以执行处理器能执行的任何指令,用户程序只能执行除特权指令外的指令,所以特权指令只能由内核即操作系统使用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

<刷题笔记>408计算机学科专业基础综合_操作系统_第一章_计算机系统概述_第一篇 的相关文章

  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • 在高 dpi Windows 平台上自动重新缩放应用程序?

    我正在编写一个需要在高 dpi Windows 192dpi 而不是 96dpi 上运行的 Qt 应用程序 不幸的是 Qt 框架尚不支持高 dpi 至少在 Windows 上 因此我的应用程序及其所有元素看起来只有应有尺寸的一半 有没有办法
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke

随机推荐