操作系统-系统结构知识详解


描述操作系统向用户,进程和其他系统提供的服务

讨论构建操作系统的各种方法

解释如何安装和定制操作系统,以及他们如何引导

操作系统服务

提供对用户有帮助的功能

​ 用户界面-几乎所有操作系统都有用户界面

​ 命令行,图形用户界面,批处理方式各不相同

​ 程序执行- 系统必须能够将程序装入内存并运行该程序,结束执行,无论是正常的还是异常的

​ IO操作- 一个正在运行的程序可能需要io.这可能涉及文件以及io设备

​ 文件系统操作 - 文件系统是一个特别有趣的操作,显然,程序需要读写文件和目录.创建和删除它们.搜索它们.列出文件信息,权限管理

提供对用户有帮助的函数

通信 - 计算机可以同网络上的计算机交换信息

通信可以通过共享内存或通过消息传递

错误检测 - 操作系统需要随时注意可能出现的错误

可能发生在CPU和内存硬件,在IO设备,用户程序

对于每种类型的错误,操作系统都应该采用合适的措施,以确保正确的一致的计算

调试工具 可以有效的提高用户和程序员有效的使用系统的能力

操作系统通过资源共享来确保系统本身高效运行

资源分配 - 当多个用户和多个资源同时运行时,需要为每个用户或多个作业分配资源

许多类型的资源 - 一些(如cpu周期,主内存和文件存储)可能有特殊分配代码,其它(io设备)可能有通用的请求和解释代码

Accounting (会计) - 跟踪那些用户使用了多少和什么类型的资源

保护和安全 储存在多用户或互联网计算机系统中的信息的所有者可能想要控制该信息的使用,同时,进行的进程不应相互干扰

保护 包括确保对系统资源的所有访问都受到控制

来自外部的系统安全性需要用户身份验证,扩展到保护外部IO设备免受无效访问尝试

如果一个系统要被保护安全,必须在整个系统中设置预防措施.一条链条的坚固程度取决于它最薄弱的一环

用户操作系统界面

命令行接口(CLI)或 命令解释器允许直接输入命令

一些操作系统在内核中包含命令解释器

其他(windows xp 和unix)将命令解释器视作为在作业启动时启动的特殊程序

在具有多个命令解释器来选择他们的系统上,这些解释器称为shell

在UNIX和LINUX上,用户可以在几种不同的shell中进行选择,包括Bounrne,shell,c shell,Bourne-again shell ,korn shell 和其他的shell

大多数shell都提供类似的功能,用户选择那种shell纯属个人喜好

命令解释器的主要功能是获取下一个用户指定的命令

大多数的文件创建,删除,修改,复制,列表,执行…

这些命令可以通过两种方式实现

命令解释器,本身包含解释命令的代码

另一个 通过系统实现大多数命令,命令解释器不执行命令.他是用命令标识符来加载到内存并执行的文件

unix命令,删除文件

rm file.txt

Bourne Shell 命令解释器

用户操作系统的界面 GUI

友好的桌面界面

​ 通常是mouse ,keyboard,and monitor(显示器)

​ 图标表示文件,程序,动作等

​ 界面上的各种鼠标按钮会导致各种操作(提供信息,选项,执行函数,打开目录)

许多系统现在都包含cli和gui界面

windows是GUI界面shell带有CLI

​ Apple Mac OS 是GUI界面在内壳外壳下可用

系统调用

操作系统提供的服务的编程接口

通常是由c++编写的

主要是通过高级应用程序接口API访问,而不是直接使用系统调用

最常见的三个API是

​ windows的API

​ linux unix mac os 的API

​ java虚拟机的API

标准的API调用例子

win api的ReadFile()函数 一个用于读取文件的函数

传递给ReadFile()函数的参数说明

​ LPVOID缓冲区 数据将被读入和写入的缓冲区

​ DWORD bytestoreread 要读入缓冲区的字节数

​ LPDWORD bytesread 上次读取的字节数

​ ipoverlap ovi 表示是否正在使用重叠的io

系统调用的例子

通常每个系统调用相关联的号码

​ 系统调用接口维护一个根据这些数字索引的表

系统调用接口 调用操作系统内核中预期的系统调用,并返回系统调用的状态和任何返回值

调用者不需要知道系统是如何调用的

​ 只需要遵从API并理解OS在结果调用时会做什么

​ 大部分的操作细节都被api隐藏了

​ 由运行时支持库管理(编译器包含的库中内置的函数集)

系统调用参数传递

通常需要更多的信息,而不仅仅是所需系统调用的标识

准确的信息类型和数量引操作系统和呼叫而异

向操作系统传递参数的三种方法

最简单,在寄存器中传递参数

在某些情况下,参数可能比寄存器更多

存储在内存中的块或表中的参数,以及作为参数在寄存器中传递的块地址

linux和solaris采用了这种方法

​ 由程序放置或推入堆栈并由操作系统弹出堆栈的参数

​ 块和堆栈方法不限制传递参数的数量或长度

参数调用的类型

过程控制

文件管理

设备管理

信息维护

通信

保护

系统程序

系统程序为程序的开发运行提供了方便的环境,

它们分为

文件处理

状态信息

文件修改

编程语言支持

程序加载和执行

通信

应用程序

大多数用户对操作系统的视图是由系统程序定义的,而不是实际的系统调用

文件管理 创建 删除 重命名 修改 打印 转储 列表 和一般操作文件和目录 状态信息

有些要求系统提供信息 日期 时间 可用内存量 磁盘空间 用户数量

​ 其它的则提供详细的性能,日志记录和调用信息

​ 通常,这些程序将输出格式化并打印到终端或其它输出设备

​ 一些系统实现了一个注册表- 用啦存储和检索配置信息

系统程序组

文件修改

​ 用于创建和修改文件的文本编辑器

​ 用于搜索文件内容或执行文本转换的特殊命令

编程语言支持-有时提供编译器,汇编器,调试器和解释器

程序加载和执行-绝对加载器,可重定位加载器,连接编辑器.覆盖加载器,高级和机器语言的调试系统

通信 提供在进程,用户,和计算机系统之间建立虚拟连接的机制

​ 允许用户向彼此的屏幕发送信息,浏览网页,发送电子邮件信息,远程登录,从一台机器到另一台机器传输文件

下篇预告

操作系统的设计和实现

操作系统的结构

虚拟机

操作系统调试

操作系统生成

系统启动

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑白极客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值