计算机操作系统--UNIX操作系统

2023-11-18

UNIX操作系统

UNIX操作系统是一种多用户、多任务的分时操作系统。它由最内层的硬件提供基本服
务,内核提供全部应用程序所需的各种服务。

UNIX文件系统

UNIX文件系统采用树形带交叉勾连的目录结构,根目录即为,非叶节点是目录
文件,叶节点可以是目录文件,也可以是文件或特殊文件。目录是一个包含目录项的文件,
在逻辑上可以认为每一个目录项都包含一个文件名,同时还包含说明该文件属性的信息。
某些UNIX文件系统限制文件名的最大长度为14个字符,BSD版本则将这种限制扩展到了
255个字符。


UNIX文件系统结构由四部分组成,即引导块、超级块、索引节点区和数据存储区。

  • 引导块:占据文件系统的开头,通常占用一个物理块,包含引导代码段。
  • 超级块:描述文件系统的状态。
  • 索引节点区:第一个索引节点就是文件系统的根索引节点,当执行mount命令后,
该文件系统的目录结构就可以从这个根索引节点开始进行存取。
  • 数据存储区:专门存放数据的区域。

UNIX进程与存储管理

1.进程管理

UNIX中的进程由进程控制块(PCB)、正文段和数据段组成。PCB由常驻主存的基本进
程控制块proc和非常驻主存的进程扩充控制块user两部分组成。正文段可供多个进程共享。
系统设置一正文表text,每个正文段都占据一个表项,用来指明正文段在主存和磁盘中的位
置。数据段是进程执行时用到的数据段,若进程执行时的程序是非共享的,则也构成数据传统的UNIX进程控制子系统有进程同步、进程通信、存储管理和进程调度几大功能。进程调度采用动态优先数调度算法,进程的优先数随着进程的执行情况而变化。UNIX系统中优先数的确定方法有两种,即设置方法和计算方法。

2. 存储管理

UNIX早期的版本采用“对换技术”扩充主存容量,进程可以被换出到对换区,也可以从对换区换进到主存。高版本的 UNIX 主存管理采用分页式虚拟存储机制,对换技术作为一种辅助手段,并采用二次机会页面替换算法。

# UNIX设备管理
1.设备管理

UNIX系统中的文件等同于系统中可用的任何资源。UNIX的设计者们遵循一条这样的规则∶UNIX系统中可以使用的任何计算机资源都用一种统一的方法表示。它们选择用“文件”这个概念作为一切资源的抽象表示方法。
UNIX系统包括两类设备,即块设备和字符设备。

UNIX设备管理的主要特点如下。

(1)块设备与字符设备具有相似的层次结构。这是指对它们的控制方法和所采用的数据结构、层次结构几乎相同。


(2)将设备作为一个特殊文件,并赋予一个文件名。这样,对设备的使用类似于对文件的存取,具有统一的接口。


(3)采用完善的缓冲区管理技术。引入“预先读”“异步写”和“延迟写”方式,进一步提高了系统效率。

2. 输入输出转向

在UNIX中,任何一个存放一条或多条命令的文件称为Shell程序或Shell过程。Shell 向用户提供了输入输出的转向命令,可以在不改变应用程序本身的情况下自由地改变其数据的输入源和输出目的地。其中,“>”“>”表示输出转向,“<”表示输入转向。

3.管道

在 UNIX 系统中,“|”符号表示管道。一个管道总是连接两条命令。若将左边的标准输出命令和右边的标准输入命令相连,则左边命令的输出结果就直接成为右边命令的输入。这个功能使得用户可以在不改动程序本身的前提下使多个程序通过标准输入输出设备进行数据传递。

shell程序

shell不但负责管理命令行界面,而且shell自己也是一个编程的环境。实际上,可以将命令按照命令行的格式写入一个文件,再将其权限设置为可执行,就可以像普通命令一样执行它了。这个文件通常称为脚本。熟悉DOS的用户自然想到shell脚本相当于DOS的批处理文件,而且shell脚本中也同样支持如if、for和case等程序控制流程,甚至还支持变量和函数定义。shell实际上是一种编程语言。利用shell语言可以编写出功能很强的shell程序,并可将程序段组合起来。

1. 正则表达式





在UNIX中,正则表达式不仅用在vi中,还用在shell中。正则表达式是用来确定字符串模式的一个规则集,是对文本字符串的一种描述,该描述能简洁而又完整地刻画文本字符串的关键特性。因此,正则表达式通常被用作字符串的匹配操作。






2. shell变量





shell中的变量可分为3种类型,即用户定义变量、系统定义变量和shell定义变量。用户定义变量是必须以字符或下划线开始,可以包含字母、下划线和数字的字符序列。系统定义变量和shell定义变量要相对复杂一些。

3. shell程序

shell 向用户提供了许多用于简化输入的符号,这些符号包括各种通配符、字符串定义符、转义符和变量定义符等。这些符号可以被看作shell的保留字,通常称为“元字符”。元字符的种类和作用非常多,它们无论在shell的命令行输入还是在shell程序设计中都起着非常重要的作用。

shell 命令行本身也是一个交互式的脚本执行环境,也就是说,在命令行上同样可以使用脚本中的控制语句,也可以定义变量(实际上就是环境变量),甚至可以定义函数。这都与脚本文件中的命令一样。但是有一点必须注意,shell程序有许多种,不同的shell有不同的编程命令和语法。虽然它们基本上大同小异,但还是有许多差别。

未完待续。。。

更多知识传送:

计算机操作系统–基础知识
计算机操作系统–进程管理
计算机操作系统–存储管理
计算机操作系统–设备管理
计算机操作系统–文件管理
计算机操作系统–作业管理
计算机操作系统–网络操作系统和嵌入式操作系统

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以上内容整理参考《软件设计师教程(第5版)》和《软件设计师考试同步辅导(第四版)》(忘记是哪个老师的了,侵删)。本文章内容旨在帮助更多想要进军软考,给自己镀金的小伙伴。有兴趣的小伙伴可以共勉。

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

计算机操作系统--UNIX操作系统 的相关文章

  • 使用 AWK 或 SED 以及以下标签以逗号分隔

    使用 AWK 或 SED 以及下面使用的标签以逗号分隔 BEGIN AccountID BEGIN CallerID BEGIN Billed Account Attributes 1111111 1111111 1111111 END B
  • 将多个参数传递给 UNIX shell 脚本

    我有以下 bash shell 脚本 理想情况下我会用它来按名称杀死多个进程 bin bash kill ps A grep awk print 1 然而 虽然此脚本有效 但传递了一个参数 端镀铬 脚本名称为end 如果传递多个参数 则它不
  • 使用 sh shell 比较字符串

    我正在使用 SH shell 我试图将字符串与变量的值进行比较 但是if条件始终执行为真 为什么 这是一些代码 Sourcesystem ABC if Sourcesystem eq XYZ then echo Sourcesystem M
  • 如何以“less”显示行号(GNU)

    执行的命令是什么less https linux die net man 1 less在左栏中显示行号 来自manual http unixhelp ed ac uk CGI man cgi less N 或 行号 导致在每个行的开头显示行
  • Unix cURL POST 使用文件中的内容到特定变量

    我已经搜索过这个答案 但没有找到任何有效或完全符合我的问题的答案 使用 Unix cURL 我需要将键 值对发布到服务器 密钥将是 MACs 换行符分隔的 MAC 地址文件的内容将是此 POST 的 VALUE 我试过了 curl d fi
  • 模拟用户输入以使用不同参数多次调用脚本

    我必须使用提供的脚本 该脚本在脚本运行时接受用户输入而不是参数 我无法解决这个问题 脚本的一个例子是 bin bash echo param one read one doSomething echo param two read two
  • 操作系统崩溃的常见原因[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解 操作系统崩溃 不限于Windows崩溃 最常见的技术原因 从操作系统编程的角度 有哪些 我正在寻找一个不像 打开太多应用
  • 什么是 POSIX 合规性以及它对我有何影响?

    我不断看到这个问题出现 每次我查找它时 我都无法很好地解释它是什么或它对我意味着什么 什么是 POSIX 合规性 假设我的程序仅在兼容 POSIX 的机器上运行 这对我作为程序员来说有何简化 甚至吗 POSIX http pubs open
  • Linux 中 AF_UNIX 数据报消息的最大大小是多少?

    目前我已达到 130688 字节的硬限制 如果我尝试在一条消息中发送更大的内容 我会收到一条消息ENOBUFS error 我已经检查过net core rmem default net core wmem default net core
  • 如何用 C 语言练习 Unix 编程?

    经过五年的专业 Java 以及较小程度上的 Python 编程并慢慢感觉到我的计算机科学教育逐渐消失 我决定要拓宽我的视野 对世界的一般用处 并做一些 对我来说 感觉更重要的事情就像我真的对机器有影响一样 我选择学习 C 和 Unix 编程
  • meld - GLib-GIO-ERROR**:系统上未安装 GSettings 架构

    经过近40个小时的努力 我终于安装了meld 3 14 2 在Redhat 6 3服务器的NFS共享上 安装了每个依赖项 最后似乎成功了 但最后一个错误需要解决 meld 20703 GLib GIO ERROR No GSettings
  • 如何在gcc中打印UINT64_t?

    为什么这段代码不起作用 include
  • 类unix系统中的python和python3命令有什么区别?

    我通读了每个命令的描述 但每个命令的描述都是完全相同的 所以我不明白这两个命令在类 Unix 系统中的工作方式有何不同 谁能解释其中的区别吗 Python3命令的引入是因为python命令指向了python2 从那时起 Python3 已成
  • 我的 unix 脚本出了什么问题

    bin bash while echo n Player s name read name name ZZZ do searchresult grep name playername if searchresult 0 then echo
  • 在 Unix 中添加用户和组

    有谁知道在unix中添加用户和组以及删除它们的api吗 我想以编程方式执行此操作 谢谢 坦率 我开始查看一些系统调用并发现以下内容 请注意 它们具有不同的标准 因此并非所有标准都可以在您的 Unix 版本上运行 getpwent setpw
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构
  • awk: hping: 打印 icmp 发起/接收之间的差异

    我有以下输出hping http ports su net hping在 OpenBSD 上 hping icmp ts www openbsd org HPING www openbsd org re0 129 128 5 194 icm
  • 仅当重复行与模式匹配时才删除它们

    这个问题 https stackoverflow com questions 1444406 how can i delete duplicate lines in a file in unix有一个很好的答案说你可以使用awk seen
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr

随机推荐

  • Python计算过去周末的方法

    在Python中 我们可以使用datetime模块来计算过去的周末数量 datetime模块提供了各种日期和时间相关的函数和类 使我们可以轻松地处理日期和时间 首先 我们需要导入datetime模块 import datetime 然后 我
  • Vue自定义指令 「干货」

    在 Vue 除了核心功能默认内置的指令 v model 和 v show Vue 也允许注册自定义指令 它的作用价值在于当开发人员在某些场景下需要对普通 DOM 元素进行操作 Vue 自定义指令有全局注册和局部注册两种方式 先来看看注册全局
  • springboot修改端口号的两种方式

    前言 springboot默认的端口号为8080 端口号的配置有两种方式 一种是在配置文件application properties中 另一种是在配置文件application yml中 1 第一种方式 修改配置文件application
  • 最短路径-Dijkstra算法与Floyd算法

    最短路径 Dijkstra算法与Floyd算法 原文 https www cnblogs com smile233 p 8303673 html 一 最短路径 在非网图中 最短路径是指两顶点之间经历的边数最少的路径 AE 1 ADE 2 A
  • 【ubuntu22.04 安装优麒麟wine封装版微信】

    选择该版本原因 目前使用体验来说优于deepin封装版 1 到优麒麟软件下载页面找到微信 wine 下载Wine环境包和 微信 wine 包 2 终端输入 sudo apt get install f y ukylin wine 70 6
  • linux 环境下 openssl 生成ecdsa公、私钥

    我的个人博客 逐步前行STEP 1 生成ecdsa私钥 openssl ecparam name prime256v1 genkey noout out prime256v1 key pem 2 从ecdsa私钥提取公钥 openssl p
  • windows下anaconda3安装MySQLdb

    本文转自Windows下python3 6 安装MySQLdb 首先需要下载windows版本的mysqlclient 原作者给出了其中一个版本的下载链接 下载之后 放到合适的文件目录中 然后打开anaconda自带的Anaconda Pr
  • java使用switch语句完成输入1~12之间的整数,显示该月份的英语单词及这个月属第几季度。

    1 程序代码如下 package java实训 import java util Scanner public class SJ4 public static void main String args Scanner input new
  • AI Cloud将百花齐放,青云科技已先走了一步

    三年前 国家超级计算济南中心 济南超算 悄悄干了一件大事 投资数十亿元致力于打造一个融HPC超算 传统云计算 以CPU为主 和智算 以GPU为主 为一体的多元算力中心 这就需要一个统一的并且可以对外开放的运维和运营平台 那时还在打磨阶段的青
  • python注释快捷键 引号注释快捷键 注释字体样式调整

    python注释快捷键分为两种 单行注释 单行注释快捷键是CTRL list red green blue yellow white black print list 0 print list 1 print list 2 list red
  • VS E2996 错误过多,导致IntelliSense引擎无法正常工作。其中一些错误可能在编辑器中不可见。代码没有提示

    一 错误的问题描述 二 这个问题导致的后果 后面程序中用到的很多都会显示找不到定义 三 说实话这个问题真的很坑 由于我更换了我程序的工作电脑 我在VS中属性管理器中重新配置了头文件和对应的库目录 但是这里我犯了一个小错误 就是我更换的时候
  • QT开发技巧之QTableWidget设置表头颜色字体

    1 默认的表头和内容背景字体一样不好区别 可以通过qss设置修改表头样式 2 修改后效果如下 qss代码 表格头背景色 QHeaderView section background rgb 128 255 255 font family 宋
  • vue引入阿里图标 Module parse failed: Unexpected character '�' (1:0)

    操作根据文章 https blog csdn net qq 32113629 article details 79740949 在自己跟着试了一下后报错 Module parse failed Unexpected character 1
  • c++享元模式

    享元模式 1 享元模式简介 享元模式在 设计模式 可复用面向对象软件的基础 一书中是这样说的 运用共享技术有效地支持大量细粒度的对象 本质就是对大量细粒度的对象进行共享 不是每个对象都要通过new的方式去创建 而是通过区分对象的内部状态和外
  • 波形图、频谱图和语谱图

    波形图 反映各质点在同一时刻不同位移的曲线 叫做波的图像 也叫做波形图 波形图用于显示测量值为均匀采集的一条或多条曲线 波形图仅绘制单值函数 即在y f x 中 各点沿x轴均匀分布 例如一个随时间变化的波形 波形图可显示包含任意个数据点的曲
  • 消息通知之系统层事件发布相关流程

    前言 Openharmony 3 1Release中存在消息通知的处理 消息通知包括系统层事件发布 消息订阅 消息投递与处理 为了开发者能够熟悉消息的处理流程 本篇文章主要介绍系统层事件发布的相关流程 整体流程 代码流程 发布消息 even
  • c++ queue用法 入门必看 超详细

    1 queue的作用 说到queue 大家一定会想到stack 同样是简单易用的数据结构之一 queue就是队列的意思 像大家日常排队一样 先排的人先用 stack则是相反的 后来的先用 这就有了queue先进先出 stack后进先出的说法
  • 解决表情包乱码

    问题描述 在 Web 应用或移动App中 我们经常需要显示表情符号 但表情符号包含许多非ASCII字符 不能直接在文本中传输 所以通常会转换为HTML实体编码进行传输和存储 如常见的微笑表情 会编码为 但是后续读取网络返回的文本内容时 如果
  • Kafka——集群

    文章目录 集群 1 搭建个集群 2 集群发送消息 3 集群消费 3 1 Procuder 3 2 Consumer 4 消费顺序 集群 对于kafka来说 一个单独的broker意味着kafka集群中只有一个节点 要想增加kafka集群中的
  • 计算机操作系统--UNIX操作系统

    UNIX操作系统 UNIX操作系统是一种多用户 多任务的分时操作系统 它由最内层的硬件提供基本服 务 内核提供全部应用程序所需的各种服务 UNIX文件系统 UNIX文件系统采用树形带交叉勾连的目录结构 根目录即为 非叶节点是目录 文件 叶节