从0开始回顾操作系统---系列一

简介: 概述1、什么是操作系统● 操作系统简称OS,负责管理协调计算机硬件与软件资源工作的系统软件。● 屏蔽了硬件层的复杂性,为上层应用软件与用户提供易用的服务。2、操作系统主要有哪些功能?操作系统最主要的功能:● 处理器(CPU)管理:CPU的管理和分配,主要指的是进程管理。● 内存管理:内存的分配和管理,主要利用了虚拟内存的方式。● 外存管理:外存(磁盘等)的分配和管理,将外存以文件的形式提供出去。● I/O管理:对输入/输出设备的统一管理。除此之外,还有保证自身正常运行的健壮性管理,防止非法操作和入侵的安全性管理。3、什么是系统调用?有哪几类? 根据进程访问资源的特点,

概述

1、什么是操作系统

  • 操作系统简称OS,负责管理协调计算机硬件软件资源工作的系统软件
  • 屏蔽了硬件层的复杂性,为上层应用软件与用户提供易用的服务。

2、操作系统主要有哪些功能?

操作系统最主要的功能:

  • 处理器(CPU)管理:CPU的管理和分配,主要指的是进程管理。
  • 内存管理:内存的分配和管理,主要利用了虚拟内存的方式。
  • 外存管理:外存(磁盘等)的分配和管理,将外存以文件的形式提供出去。
  • I/O管理:对输入/输出设备的统一管理。

除此之外,还有保证自身正常运行的健壮性管理,防止非法操作和入侵的安全性管理

3、什么是系统调用?有哪几类?

根据进程访问资源的特点,可以将进程在系统上的运行分为两个级别:

  • 用户态:用户态下的进程可以直接读取用户程序的数据
  • 内核态:内核态下的进程几乎可以访问计算机的任何资源,不受限制

我们运行的程序基本都是运行在用户态,如果需要调用操作系统提供的内核态级别的功能的时候,就需要使用系统调用,通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成 。

这些系统调用按功能大致可分为如下几类:

  • 设备管理。完成设备的请求或释放,以及设备启动等功能。
  • 文件管理。完成文件的读、写、创建及删除等功能。
  • 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
  • 进程通信。完成进程之间的消息传递或信号传递等功能。
  • 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及地址等功能。

4、用户态切换到内核态的几种方式

  1. 系统调用
  • 这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作  。
  1. 异常
  • 发生异常,切换到处理该异常的内核程序中。
  1. 硬件设备中断信号
  • 当硬件设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。  

系统调用可以认为是用户进程主动发起的,异常和硬件设备中断则是被动的。

4、并发和并行有什么区别?

  • 并行:指两个或多个事件在同一时刻同时发生。
  • 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。

5、同步与异步?

  • 同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;
  • 异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。


6、什么是中断?

基本概念:

  • 中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得 CPU 暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。
  • 引起中断发生的事件被称为中断源
  • 中断源向 CPU 发出的请求中断处理信号称为中断请求,而 CPU 收到中断请求后转到相应的事件处理程序称为中断响应

类型:

根据中断源产生的条件,可把中断分为外中断内中断

  • 外中断: 指来自处理器和内存外部的中断,包括 IO 设备发出的 IO 中断、外部信号中断(例如用户键人 ESC 键)。各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。外中断在狭义上一般被称为中断。
  • 内中断:一般称为陷阱(trap)或异常。它包括程序运算引起的各种错误,如地址非法、校验错、页面失效、存取访问控制错、算术操作溢出、数据格式非法、除数为零、非法指令、用户程序执行特权指令、分时系统中的时间片中断以及从用户态到核心态的切换等都是陷阱的例子。


7、软中断和硬中断的区别?

硬中断:

  • 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。
  • 处理中断的驱动是需要运行在 CPU 上的,因此,当中断产生的时候,CPU 会中断当前正在运行的任务,来处理中断。
  • 硬中断可以直接中断 CPU。它会引起内核中相关的代码被触发。对于那些需要花费一些时间去处理的进程,中断代码本身也可以被其他的硬中断中断。
  • 对于时钟中断,内核调度代码会将当前正在运行的进程挂起,从而让其他的进程来运行。它的存在是为了让调度代码(或称为调度器)可以调度多任务。

软中断

  • 软中断的处理非常像硬中断。然而,它们仅仅是由当前正在运行的进程所产生的
  • 通常,软中断是一些对 I/O 的请求。这些请求会调用内核中可以调度 I/O 发生的程序。对于某些设备,I/O 请求需要被立即处理,而磁盘 I/O 请求通常可以 排队并且可以稍后处理。
  • 软中断仅与内核相联系。而内核主要负责对需要运行的任何其他的进程进行调度。一些内核允许设备驱动的一些部分存在于用户空间,并且当需要的时候内核也会调度这个进程去运行。
  • 软中断并不会直接中断 CPU。也只有当前正在运行的代码(或进程)才会产生软中断。这种中断是一种需要内核为正在运行的进程去做一些事情(通常为 I/O)的请求。
相关文章
|
存储 数据采集 机器学习/深度学习
主数据管理的前世 今生 未来(一文深入了解主数据管理)(下)
根据Gartner的定义,“主数据管理(MDM)是一种技术支持的规程,业务和IT部门共同工作,以确保企业共享主数据资产的唯一性、准确性、语义一致性和可靠性……”
主数据管理的前世 今生 未来(一文深入了解主数据管理)(下)
|
存储 缓存 固态存储
Intel PMEM的使用经验和指南
作为一种Persistent Memory设备,同时也是第一款可扩展的商用NVDIMM,英特尔Optane DIMM (dual In-line memory module) 设备的性能介于传统持久性存储介质和内存之间,它的出现将有助于扩展内存容量,或提供低延迟持久性存储设备。本文主要介绍,后者使用方式下的介质的性能特点和使用指南。 本文内容主要来自于“An Empirical Guide to the Behavior and Use of Scalable Persistent Memory (FAST 20)”,加上本人的一些要点提炼和批注。
9371 2
Intel PMEM的使用经验和指南
|
5月前
|
数据采集 人工智能 运维
AI 智能体外包开发流程
AI智能体外包不同于传统软件,核心在于意图理解与流程闭环。标准化流程涵盖需求对齐、知识库构建、工作流编排、模型评测、交付验收及持续迭代,确保智能体真正落地赋能业务。#AI智能体 #AI应用 #软件外包公司
|
11月前
|
机器学习/深度学习 人工智能 安全
制造业工业4.0落地案例:AMR如何提升车间效率?
第四次工业革命为制造业带来了巨大的机遇与挑战。本文综合分析了工业4.0在制造业应用中的优势与局限,为企业更清晰地理解潜在障碍与收益提供参考。以自主移动机器人替代传统叉车为例,通过在主入口服务器、制造执行系统与仓储管理系统之间采用先进的API通信协议,不仅实现了物料搬运的智能化,还显著节省了工艺时间。通过对约15个工位的时间研究,记录到每班次节省约1.14小时。同时,时间与成本分析被用于支持企业的决策流程。成本分析基于5年周期构建了OPEX和CAPEX模型。在三种模型中,自主移动机器人的CAPEX模型被证明节省了30%的成本。
603 3
|
存储 监控 druid
Druid、ClickHouse、Doris、StarRocks 的区别与分析
本文对比了 Druid、ClickHouse、Doris 和 StarRocks 四款大数据分析引擎。它们均为 OLAP 引擎,采用列式存储和分布式架构,适用于海量数据分析。Druid 擅长实时分析与高并发查询;ClickHouse 以超高性能著称,适合复杂查询;Doris 提供易用的 SQL 接口,性能均衡;StarRocks 则以其极速查询和实时更新能力脱颖而出。各引擎在数据模型、查询性能、数据更新和存储方面存在差异,适用于不同的业务场景。选择时需根据具体需求综合考虑。
7866 20
|
存储 Java 开发者
【编程基础知识】 计算机中的数学魔法:二进制加减运算全解析
本文深入解析了计算机中二进制加减运算的原理,涵盖原码、反码和补码的概念及应用,结合具体示例,帮助读者理解计算机底层数学运算机制,适合Java开发者学习。
603 0
|
机器学习/深度学习 缓存 算法
《C++ 与神经网络:自动微分在反向传播中的高效实现之道》
在深度学习领域,神经网络的核心驱动力依赖于高效的反向传播算法,而自动微分技术是其实现的关键。尤其在C++环境中,面对内存管理和性能优化的挑战,通过计算图、对象池、多线程等技术实现高效自动微分,支持神经网络的训练,对促进AI技术的发展具有重要意义。
243 3
|
监控 jenkins 测试技术
构建健壮的CI/CD流程:策略与实践
【5月更文挑战第15天】构建健壮的CI/CD流程对于提升开发效率和软件质量至关重要。核心价值包括自动化构建、测试和部署,降低风险,及保证质量。选择适合团队的CI/CD工具,定义清晰阶段和任务,实现自动化,并确保流程的可靠性和稳定性。实践策略包括代码质量检查、全面测试、监控反馈和持续改进。通过这些方法,团队能更专注于核心功能开发,实现高效、高质量的软件交付。
|
关系型数据库 MySQL 应用服务中间件
用2核2G的入门级云服务器搭建WordPress博客系统
2核2G的云服务器能用来干嘛呢---个人建站。没错,就是搭建自己的博客网站,这类网站系统对服务器性能和内存要求都较低,而且云服务器自带公网IP,任何人都可以访问,后续也可以注册购买一个自己的域名,映射到云服务器的公网IP,妥妥的就是自己的个人网站了。
用2核2G的入门级云服务器搭建WordPress博客系统