计算机的工作原理(操作系统篇)

news2024/10/6 8:23:03

文章目录

  • 1.操作系统的定位
    • 1.硬件
    • 2.驱动
    • 3.操作系统内核
    • 4.系统调用
  • 2.进程
  • 3.PCB中有哪些描述进程的特征
  • 4.内存管理

1.操作系统的定位

先看一张图:
在这里插入图片描述
1.操作系统是最接近硬件的软件,是软件/硬件/用户之间交互的媒介;
2.操作系统起到一个管理的作用
1)对下,要管理硬件设备
2)对上,要给软件提供稳定的运行环境

1.硬件

硬件就是电脑上肉眼可以看见的设备,内存,硬盘…

2.驱动

对于不同的硬件,生产厂商也是千差万别,所以硬件出场的的时候开发商也会提供相关的驱动程序,电脑装了相关的驱动之后,才能让系统正确识别出该硬件

3.操作系统内核

操作系统内核起到一个管理的作用
1)对下,要管理硬件设备
2)对上,要给软件提供稳定的运行环境

4.系统调用

操作系统给应用程序提供一个API;
比如说,有个程序想要操作一下硬件设备,该程序就要先通过系统调用,把操作命令告诉内核,内核在调用驱动程序,进一步才能调用硬件设备


2.进程

什么是进程?
进程实体运行的过程就叫做进程(一个跑起来的程序就叫做进程)

进程是操作系统进行资源调度和分配的基本单位,所以每个进程都有自己的资源
在这里插入图片描述


进程是一个非常重要的软件资源,它是由操作系统内核管理的(由操作系统内核进行描述+组织的);
操作系统通过C语言的结构体对进程进行描述,该结构体有一个名字叫进程控制块(PCB)
操作系统通过一个双向链表将进程组织起来,就是把PCB串到一起

创建一个进程,就是创建一个PCB,并将PCB这个结构体插到链表中
销毁一个进程,就是把该进程对应的PCB从链表中删除
在任务管理器中查看进程列表,本质上就是遍历这个PCB链表

3.PCB中有哪些描述进程的特征

1.pid:进程的身份标识符,也是进程的唯一标识
2.内存指针:指向说自己的内存在哪里
3.文件描述符表:硬件上的其他资源
4.进程调度的相关属性:
1)进程的状态:

就绪态:进程随时都可以被调用到CPU上执行
运行态:进程正在CPU上执行
阻塞态:进程由于某些原因被调离内存,暂时无法回到内存(频繁的IO操作,读写数据)

2)进程的优先级
谁先执行,谁后执行,执行时间的长短都是由操作系统决定的
3)上下文
操作系统进行进程切换的时候,要记录下来进程的状态,下次这个进程再次被调用到CPU上的时候就可以恢复上次的状态,继续上次的执行
4)记账信息
统计每个进程在CPU上占用的时间和执行的指令条目,根据这个来决定下一阶段如何调度


4.内存管理

虚拟地址空间,我们程序中获取的地址,都不是真实存在于内存(硬件)上的地址空间,而是经过了一层抽象,虚拟出来的地址;
内存:可以想象成是一个宿舍楼,特里面有非常多的宿舍,每个宿舍的大小是1Byte,每个房间都有一个编号(101,102,103…),这个编号就是地址,这个地址就是物理地址;
每个进程都有自己对应的内存空间,如下图所示:
引入虚拟内存之前:
在这里插入图片描述

引入虚拟内存之后:
在这里插入图片描述

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

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

相关文章

【100天精通python】Day4:运算符

目录 1 算数运算符 2 赋值运算符 3 比较(关系运算符) 4 逻辑运算符 5 位运算符 6 运算符的优先级 以下是一个完整的示例代码,用于计算学生三科成绩的分差和平均分: 1 算数运算符 Python中的算术运算符包括: 加…

如何在pd里设置win10虚拟机command+w关闭chrome浏览器的一个标签页

背景 在windows,我们知道 ctrlw 在chrome浏览器里可以关闭一个标签页,但是对于MacOS,pd的虚拟机里安装win10后(pdparallel desktop),commandw默认并不是料想中的相当于ctrlw关闭一个标签页,而是关闭所有的…

MPP概述

前言 最近忙于工作,有一段时间没更新自己的博客了,也就意味着囤积了一波需要梳理总结并记录的知识点,但可以保证的是所有都是零星的知识点,不会涉及工作内容。 一、MPP简介 MPP (Massively Parallel Processing),即大…

Cisco学习笔记(CCNA)——Internetworking

Internetworking Internetworking Basics 什么是网络? 计算机网络:具有独立功能的多台计算机及其外部设备,通过通信线路连接起来 网络设备 Hub(集线器) 优点:便宜、操作简单 缺点:共享型、…

Set与Map的使用 + 二叉搜索树与哈希桶的大白话讲解和图解+完整代码实现(详细注释)

文章目录 前言一、Set与Map概念及场景模型纯Key模型Key-Value模型 Map 的使用Set 的使用 二、二叉搜索树什么是二叉搜索树代码实现二叉搜索树查找操作插入操作删除操作(难点)cur这个节点没有左子树(cur.left null)cur这个节点没有右子树(cur.right null)cur这个节点没有左右子…

springboot与rabbitmq的整合【演示5种基本交换机】

前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:个人主页1 || 笑霸final的主页2 📕系列专栏:后端专栏 📧如果文章知识点有错误的地方,…

基于梯度下降的线性回归(Gradient Descent For Linear Regression)

概述: 梯度下降是很常用的算法,它不仅被用在线性回归上和线性回归模型、平方误差代价函数。在本次,我们要将梯度下降和代价函数结合。我们将用到此算法,并将其应用于具体的拟合直线的线性回归算法里。 梯度下降算法和线性回归算法…

Cell 子刊 | 深度睡眠脑电波调节胰岛素敏感性促进血糖调节

缺乏高质量的睡眠会增加一个人患糖尿病的风险。然而,为什么会这样仍然是一个不解之谜。 近期,加州大学伯克利分校的一组睡眠科学家的新发现为我们揭示了答案。研究人员在人体内发现了一种潜在的调控机制,解释了为什么夜间深度睡眠脑电波能够调…

数据结构(王道)——线性表之静态链表顺序表和链表的比较

一、静态链表 定义: 代码实现: 如何定义一个静态链表 静态链表的基本操作思路: 初始化静态链表: 静态链表的查找、插入、删除 静态链表总结: 二、顺序表和链表的比较 逻辑结构对比: 存储结构对比&#xff…

golang关于成员变量使用:=

错误 错误原因 结构体成员变量不能与:一起用,这是一个语法错误。

Mybatis架构简介

文章目录 1.整体架构图2. 基础支撑层2.1 类型转换模块2.2 日志模块2.3 反射工具模块2.4 Binding 模块2.5 数据源模块2.6缓存模块2.7 解析器模块2.8 事务管理模块3. 核心处理层3.1 配置解析3.2 SQL 解析与 scripting 模块3.3 SQL 执行3.4 插件4. 接口层1.整体架构图 MyBatis 分…

SpringMVC【SpringMVC参数获取、SpringMVC处理响应】(二)-全面详解(学习总结---从入门到深化)

目录 SpringMVC参数获取_使用Servlet原生对象获取参数 SpringMVC参数获取_自定义参数类型转换器 SpringMVC参数获取_编码过滤器 SpringMVC处理响应_配置视图解析器 SpringMVC处理响应_控制器方法的返回值 SpringMVC处理响应_request域设置数据 SpringMVC处理响应_sessi…

【动手学深度学习】--02.Softmax回归

文章目录 Softmax回归1.原理1.1 从回归到多类分类1.2三种常见的损失函数 2.图像分类集2.1读取数据集2.2读取小批量2.3整合组件 3.从零实现Softmax回归3.1初始化模型参数3.2定义softmax操作3.3定义模型3.4定义损失函数3.5分类精度3.6训练3.7预测 4.softmax回归的简洁实现4.1初始…

计网笔记--应用层

1--网络程序的组织方式和关系 网络应用程序在各种端系统上的组织方式及其关系主要有两种: 客户/服务器方式(C/S方式)和对等方式(P2P方式); 2--动态主机配置协议(DHCP) 动态主机配置协…

26 sigmoid Belief Network

文章目录 26 Sigmoid Belief Network26.1 背景介绍26.2 通过log-likelihood推断SBN的后验26.3 醒眠算法——Wake Sleep Algorithm 26 Sigmoid Belief Network 26.1 背景介绍 什么是Sigmoid Belief Network?Belief Network等同于Bayesian Network,表示有…

新手如何自学PostgreSQL(PG)

如果你是一个新手,想要自学PostgreSQL,下面是一些步骤和资源,可以帮助你入门: ①了解数据库基础知识:在开始学习PostgreSQL之前,建议你先了解一些数据库的基础概念和术语,例如表、列、行、SQL查…

【Elasticsearch】搜索结果处理和RestClient查询文档

目录 2.搜索结果处理 2.1.排序 2.1.1.普通字段排序 2.1.2.地理坐标排序 2.2.分页 2.2.1.基本的分页 2.2.2.深度分页问题 2.2.3.小结 2.3.高亮 2.3.1.高亮原理 2.3.2.实现高亮 2.4.总结 3.RestClient查询文档 3.1.快速入门 3.1.1.发起查询请求 3.1.2.解析响应 …

LangChain(6)构建用户自己的Agent

构建用户自己的Agent 编写简单的计算工具编写有多个参数的工具其它更高级的工具 LangChain 中有一些可用的Agent内置工具,但在实际应用中我们可能需要编写自己的Agent。 编写简单的计算工具 !pip install -qU langchain openai transformersfrom langchain.tools …

Spring-Interceptor拦截器

使用步骤 申明拦截器bean,并实现HandlerInterceptor接口 true为放行,false为拦截 2.定义配置类,继承WebMvcConfigurationSupport,实现addInterceptors方法,该方法调用具体的拦截器进行拦截 也可以在配子类通过实现W…