计算机操作系统引论(操作系统)

news2025/1/13 11:41:24

目录

一、操作系统的目标

二、操作系统的作用

三、操作系统的基本特性

四、操作系统的主要功能

五、操作系统的结构设计


一、操作系统的目标


操作系统(Operating System,OS)是计算机硬件的第一层软件,是计算机必备配置的最基本、最重要的系统软件。

1、有效性


有效提高CPU和I/O设备利用率;提高的方法:合理地组织计算机的工作流程

2、方便性


可使计算机系统更容易使用

3、可扩展性


OS为了能适应发展的要求,比具有良好的可扩展性;如何才有可扩充性?例如:采用新的OS结构,如微内核结构和客户服务器模式

4、开放性


        计算机网络,特别特别是LAN的迅速发展,使OS的应用环境由单机转向网络环境。为使不同厂家的计算机和设备能通过网络加以集成化,并能正确、有效地协同工作,实现应用的可移植性和互操作性,必须具有统一的开放环境,进而要求OS具有开放性。

        开放性是指系统能遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。

二、操作系统的作用


从用户观点看,OS是用户和计算机硬件系统之间的接口

从资源管理观点看,OS是计算机系统资源(软、硬)的管理者

操作系统的作用:

1OS作为用户和计算机硬件系统的接口

2OS作为计算机资源的管理者

3OS实现了对计算机资源的抽象


1、操作系统作为用户和计算机硬件系统的接口


用户可以通过三种方式使用计算机

命令方式(键盘命令)

图标、窗口方式GUI

系统调用方式程序接口

2、操作系统作为计算机资源的管理者


计算机系统资源可归结为四类:处理器、存储器、I/O设备、文件/信息(数据和程序)

OS的主要功能也正是针对这四类资源进行有效管理:

处理机管理:分配和控制处理机

存储器管理:主要是内存分配和回收

I/O设备管理:I/O设备的分配与操纵

文件管理:文件的存取、共享和保护

3、操作系统实现了对计算机资源的抽象


完全无软件的计算机——裸机。裸机难于使用。

    

    裸机覆盖了一层I/O设备管理软件如图1-2所示,由它来实现对I/O设备操作的细节,并向上提供一组I/O操作命令,如ReadWrite命令,用户可以利用它进行数据输入/输出,而无需关心I/O实现的细节。

        为了方便用户使用文件系统,又在第一层软件上再覆盖一层用于文件的管理软件,用它来实现对文件操作的细节,并向上提供一组对文件进行存取操作的命令。第二个层次的抽象

三、操作系统的基本特性


1、并行与并发 


并行性——两个或多个事件在同一时刻发生。

并发性——两个或多个事件在同一时间间隔内发生。

        在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却只能有一道程序执行,故微观上这些程序只能是分时地交替执行。若计算机系统中有多个处理机,则这些可以并发执行的程序可被分配到多个处理机上,实现并行执行。

进程简述


      

        通常的程序是静态实体,它是不能并发执行的。为了使程序能并发执行,系统必须分别为每个程序建立进程Process)。

        进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个活动实体。

        多个进程之间可以并发执行和交换信息。

关于进程和线程的基本概念


在OS中引入进程的目的,是使多个程序能并发执行。

进程和并发是现代OS中最重要的基本概念,也是OS运行的基础。

直到80年代中期,人们才提出了比进程更小的单位 ——线程(Threads)。

一个进程通常包含若干线程。

近年来推出的OS 都引入了线程。

2、共享


共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。

目前主要有以下两种资源共享方式:

1互斥共享方式

对于临界资源,要求被互斥地共享;

2同时访问方式

允许在一段时间内由多个进程同时对它进行访问。这里所说的同时往往是宏观上的,而微观上,这些进程可能是交替地对该资源进行访问。

并发和共享是操作系统的两个最基本的特征,它们是互为存在条件的。

资源的共享是以进程的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题;

若系统不能对资源共享实施有效管理,协调好诸进程对共享资源的访问,也必然影响到程序并发执行的程度,甚至根本无法并发执行。

3、虚拟


虚拟——是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。

操作系统中利用了两种方式实现虚拟技术,即时分复用技术和空分复用技术,分别用来实现虚拟处理机虚拟内存虚拟外部设备虚拟信道等。

4、异步性


        内存中的每个进程在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需要多少时间才能完成等等,都是不可预知的。很可能是先进入内存的作业后完成,而后进入内存的作业先完成。进程是以人们不可预知的速度向前推进,此即进程的异步性。

四、操作系统的主要功能


1、处理机管理功能


        在传统的多道程序设计系统中,处理机的分配和运行,都是以进程为基本单位的,因而对处理机的管理,可以归结为对进程的管理

        在引入线程的OS中,还包含对线程的管理。

创建和撤消进程(线程)                                 ----进程控制

对诸进程(线程)的运行进行协调                   ----进程同步

实现进程(线程)之间的信息交换                   ----进程通讯

按照一定的算法把处理机分配给进程(线程) ----进程调度

2、存储器管理


存储器管理应具有以下功能:

内存分配(静态、动态分配方式)

内存保护(硬件检查越界,软件处理)

地址映射(逻辑、物理地址,硬件支持)

内存扩充(虚拟存储技术)

3、设备管理功能


主要任务: 

完成进程提出的I/O请求;

为用户进程分配其所需的I/O设备;

提高CPU和I/O设备的利用率;

提高I/O速度;

方便用户使用I/O设备。

设备管理应具有以下功能:

1、缓冲管理——在设备和CPU之间引入缓冲,可有效地缓和CPUI/O设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统的吞吐量。

2、设备分配——按某种策略将设备分配给用户进程。需设备控制表等数据结构。

3、设备处理——设备处理程序又称为设备驱动程序。基本任务是实现CPU与设备控制器通信:CPU I/O命令;设备控制器发中断请求。

4、文件管理


主要任务

对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。

文件管理应具有以下功能:

      1.文件存储空间的管理

      2.目录管理

              3.文件的读/写管理和保护  

5、用户接口


命令接口(联机命令、脱机命令)

程序接口(系统调用)

图形接口(GUI)

五、操作系统的结构设计


微内核OS结构——现代OS结构


      

        微内核结构能有效地支持多处理机运行,故非常使用于分布式系统环境。Windows NT采用微内核结构。

        在与微内核技术发展的同时,客户/服务器技术面向对象技术也在迅速发展,把它们应用到基于微内核结构的OS中,便具有了以微内核为OS核心,以客户/服务器为基础,并且采用了面向对象的程序设计方法的特征。

1、微内核技术


微内核技术——是指精心设计的、能实现现代OS核心功能的小型内核。

1)足够小的内核

微内核是指精心设计的、能实现现代OS最基本的核心功能的部分。

2基于客户/服务器模式

OS的最基本部分放在内核中,把OS的绝大部分功能放在内核外面的一组服务器(进程)中实现。

3)应用“机制与策略分离”原理

所谓机制,是指实现某一功能的具体执行机构。

策略是在机制基础上,借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。

机制处于系统的低层,而策略处于系统的高层。

传统OS将机制放在内核低层,策略放在内核高层。

微内核OS将机制放在微内核中,策略放在微内核外。

4)采用面向对象技术

2、微内核的基本功能


1)进程(线程)管理

2)低级存储管理

3)中断和陷入处理

3、微内核的优点与缺点


优点:

1)提高了系统的可扩展性

2)增强了系统的可靠性

3)可移植性

4)提供了对分布式系统的支持

5)融入了面向对象技术

缺点:

6)微内核OS的运行效率有所降低。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/31.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接口自动化测试(二)—— Postman实现接口测试

其他 接口自动化测试 知识参考:接口自动化测试 目录 一、Postman介绍和安装 1、简介 2、安装 3、安装Postman插件newman 二、Postman基本用法 1、案例一 2、案例二 三、Postman高级用法 1、管理测试用例Collections 1.1、创建 collections 1.2、创建 用…

libusb系列-002-Windows下libusb源码编译

libusb系列-002-Windows下libusb源码编译 文章目录libusb系列-002-Windows下libusb源码编译摘要Windows下编译libusb库下载源码进入msvc目录选择对应的项目工程编译查看编译好的库文件关键字: vs、 编译、 Qt、 libusb、 windows内容背景: 最近项目终于切…

从 0 到 1 落地前端工程化

你将获得 初识:总结前端工程化技能图谱 了解:梳理前端工程化落地流程 掌握:搭建前端工程化基建项目 提高:实战前端工程化解决方案 作者介绍 JowayYoung,资深前端工程师,目前就职于网易互动娱乐事业群&…

建立私人知识网站 cpolar轻松做到1 (部署DokuWiki)

维基百科(wiki)相信大家都有所耳闻,作为全球最有名的百科知识搜索网站,很多不常见的知识点都能在这上面搜索到,而维基百科能够成功的原因,就是可以编辑的和修订的功能,让维基百科能够收到各领域…

vue学习笔记——简单入门总结(一)

Vue学习笔记 文章目录Vue学习笔记1. 学习vue的准备1.1. vue简介:1.2. vue特点:1.2.1. 组件化:1.2.1. 声明式:1.2. vue的引入1.2.1. 直接引入:1.2.2. 脚手架构建vue项目:1.2.3:vue开发插件安装:2. vue的简单…

apache服务web页面执行shell脚本

首先安装apache服务 yum -y install httpd 如下介绍两种执行的方式 方式一、url直接传参的方式 #cat /var/www/cgi-bin/shell #!/bin/sh printf "Content-Type: text/plain\n\n" your_commands_here传参的动作 http://172.16.61.119:8098/cgi-bin/shell?pwd在…

STM32使用寄存器开发底层驱动学习(USART+DMA)

目录学习资料下载任务USART的DMA功能发送数据DMA非中断模式接收USART数据。DMA中断模式接收USART数据总结学习资料下载 在本文学习中会用到如下的文档资料,没有的朋友先下载。 工程模板 Cortex M3权威指南(中文) :本文简称为《…

1024程序节|你知道老师上课随机点名是怎么实现的吗

个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主 目录 前言 随机点名 搭建主体框架 简述 执行代码 添加功能 块级元素随机输出姓名 Math.random() Math.round() 按钮控制开始/结束 onclick() clearInterval() 简述 完整代码 执行结果 片…

I/O复用--浅谈epoll

我们聊了聊select和poll知道: 它们都是采取轮询的方式查找是否有就绪描述符。都有数据结构从用户态拷贝到内核态,内核态拷贝到用户态这个过程。 为了针对许多大量连接,高并发的的场景下大量的资源消耗,效率低的问题,这…

网络安全实战:记一次比较完整的靶机渗透

0x01信息搜集 nmap -sC -sV -p- -A 10.10.10.123 -T4 -oA nmap_friendzone访问80端口的http服务只发现了一个域名。 0x02 DNS区域传输 因为我们前面扫描的时候发现了53端口是开着一个dns服务的,所以尝试使用friendzoneportal.red进行axfr,它的具体含…

《软件测试》实验2:嵌入式软件测试实验报告

文章目录实验目的温度控制器需求文档及测试要求环境搭建实验内容温度采集处理功能测试加热棒输出电压测试散热风扇温度传感器输入接口(Senser_JK)控制加热棒输出接口(Heater_JK)控制散热风扇输出接口(Fan_JK&#xff0…

目标检测 YOLOv5 - 模型推理预处理 letterbox

目标检测 YOLOv5 - 模型推理预处理 letterbox flyfish 版本:YOLOv5 6.2 假如图片大小是1080 * 1920 (height * width ) width 1920 height 1080 当模型输入是 640 * 640时 shapes (1080, 1920), (0.33, 0.33), (0.0, 140.0) 640/ 1920…

c++11 右值引用和移动语义

文章目录1. 左值引用和右值引用2. 左值引用与右值引用比较3. 右值引用使用场景和意义3.1左值引用的使用场景3.2左值引用的短板:3.3 移动构造3.4 移动赋值3.5 STL中的容器3.6 右值引用引用左值及其一些更深入的使用场景分析3.7 STL容器插入接口函数也增加了右值引用版…

Springboot 使用装饰器模式,快看,它装起来了

前言 小飞棍来咯! 本篇文章跟小飞棍一毛钱关系没有。 本篇内容: 就是配合实战案例介绍我们平时 在springboot项目里面 怎么去用 装饰器模式、多层装饰怎么玩。 正文 首先先说下装饰器模式是什么 官方: 装饰器模式(Decorator Pa…

Python3,5行代码,制作Gif动图,太简单了。

gif动图制作1、引言2、代码实战2.1 安装2.2 代码3、总结1、引言 小屌丝:鱼哥, 你能不能帮我找一个动图, 小鱼:啥动图,你自己百度不就行了。 小屌丝:我这不是没找到吗, 不然我就自己来找了。 小…

Oracle数据库:net configureation assistant工具配置监听listener,配置本地网络访问服务器上的数据库

Oracle数据库:net configureation assistant工具配置监听listener,配置本地网络访问服务器上的数据库 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开…

图像类找工作面试题(二)——常见问题大总结

文章目录一、深度学习问题1、目标检测系列(1)介绍目标检测网络YOLO以及SSD系列原理。(2)YOLO对小目标检测效果不好的原因,怎么改善?(3)怎么防止过拟合(4)Drop…

Ubuntu18.04LTS环境下创建OpenCV4.x-Android库

1 背景 1.1 java.lang.UnsatisfiedLinkError: dlopen failed: library “libc_shared.so” not found libc_shared.so 之前默认集成在 opencv_java3.so,但是在OpenCV4.x以后,该动态库默认不集成在opencv_java4.so。 1.2 E/OpenCV/StaticHelper: OpenC…

NLP学习之:Bert 模型复现(1)任务分析 + 训练数据集构造

​ 文章目录代码资源原理学习任务代码讲解代码重写说明代码资源 Bert-pytorch 原理 学习任务 Bert 本质上是 Transformer 的 Encoder 端,Bert 在预训练时最基本的任务就是: 判断输入的两个句子是否真的相邻预测被 [MASK] 掉的单词 通过这两种任务的约…

面了个腾讯拿28k跳槽出来的,真正见识到了跳槽天花板

最近内卷严重,各种跳槽裁员,相信很多小伙伴也在准备金九银十的面试计划。 作为一个入职5年的老人家,目前工资比较乐观,但是我还是会选择跳槽,因为感觉在一个舒适圈待久了,人过得太过安逸,晋升涨…