当前位置: 首页 > news >正文

操作系统 和 初识进程

目录

操作系统(OS)

进程


操作系统(OS)

  • 概念

操作系统即os,是一款软件。 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。

操作系统的本质是一种进行软硬件管理的软件

笼统的理解,操作系统包括: 内核(kernel) , 其他程序

  1. 内核(进程管理,内存管理,文件管理,驱动管理)
  2. 其他程序(例如函数库,shell程序等等)
  • 设计OS的目的

手段: 通过对下的软硬件资源的管理,使软硬件资源   稳定的, 高效的 , 安全的 ,能进行良好的工作

目的: 操作系统对上要给用户提供一个稳定的,高效的,安全的运行环境

操作系统是一个层状结构

三. OS如何进行管理

管理的本质就是对数据进行管理

操作系统通过驱动程序获取底层硬件的数据,从而对硬件做管理就转换为操作系统对数据的增删查改, 底层硬件通过驱动程序获得操作系统下达的命令。

任何计算机管理的思路->先描述,再组织。 先描述是指 将事务转化为对应的模型,然后通过数据结构等对其进行组织。

为什么现在所有的主流面向对象语言都需要提供:1. 面向对象 2. 标准库,eg:stl

因为: 1.面向对象 提供了 “先描述” 的能力 2. 标准库 提供了 “再组织” 的能力

上层用户不能绕过操作系统直接访问硬件,即程序不能直接访问硬件,用户对硬件进行写入时都需要经过操作系统。

操作系统对必须向上提供接口,方便上层使用---开放(只开放),system call(即系统调用接口),因为操作系统是c语言写的,因此提供的这些接口也只是c语言接口

用户操作接口 是 将 system call 封装成各种库, eg: glibc , libc++库 等都是 对 system call 的一些接口进行了封装

四. 定位

在整个计算机软硬件框架中,操作系统的定位是:一款纯正的“搞管理”的软件

进程

进程管理---先描述,再组织。  先描述出 “进程“ , 再对”进程“进行管理

操作系统(kernel) 通过 进程的属性数据 来对 进程进行管理。

  1. 概念

内核观点: 担当分配系统资源(CPU时间,内存)的实替

课本概念: 程序的一个执行实例,正在执行的程序等。

2.具体解释进程

操作系统内核kernel 是第一个被加载到内存的程序。

磁盘的程序 要被 加载到 内存中(即input), 内存中 加载 myexe的代码和数据。

由于 操作系统内核kernel 要进行 进程管理 ,进程管理 需要 进程的属性, 因此 操作系统 为了管理进程, 操作系统会在进程被加载到内存的同时 创建 PCB 来 描述 进程(即存储进程的属性) , 每个PCB内存储了对应的进程属性, kernel 通过 进程的属性 来调控,调度 对应的进程 , 每个 PCB 链接起来,形成队列。

Tast_struct 是Linux下的PCB的描述

进程 = 内核数据结构(PCB) + 代码和数据

为什么要有PCB? 因为操作系统要管理进程,必须要先描述,再组织。 必须用PCB来把 代码和数据 进行描述 并 进行组织。

相关文章:

操作系统 和 初识进程

目录 操作系统(OS) 进程 操作系统(OS) 概念 操作系统即os,是一款软件。 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。 操作系统的本质是一种进行软硬件管理的软件 笼统的理解&#xf…...

QT--Qlabel学习、获取文本和设置文本、文本对齐方式、文本换行、显示图片

QLabel 是 Qt 中的标签类,通常用于显示提示性的文本,也可以显示图像 对齐方式 用于设置标签中的内容在水平和垂直两个方向上的对齐方式,比如左对齐、右对齐、上对齐、下对齐、水平居中、垂直居中等。 // 获取和设置文本的对齐方式 Qt::Ali…...

深度学习:终身学习(Life-Long Learning)详解

终身学习(Life-Long Learning)详解 终身学习(也称为持续学习或增量学习)是机器学习中的一个重要研究领域,它关注如何使机器学习模型在完成一系列任务后,能够持续学习新任务,而不会忘记之前学到…...

前端UI框架

组件UI类 1.Element-Plus 2.uView 3.Vant 4.TDesign 5.uni-app 6.Tuniao-vue3 7. 可视化图标类 1.可视化图标VUE Data UI 2.Echart 图标库ICON 1.yesicon 2.Flaticon 3.Google Fonts 4.fontawesome 5.阿里巴巴 其他 1.CSS布局 2.web前端样式布局 3.中国色-颜色合集 托管…...

最佳副屏串流解决方案:如何低成本打造电脑拓展副屏?

如何低成本打造电脑拓展副屏?如果你有一台平板和一台电脑,想要提高打游戏、办公或是学习的效率。那么,使用网易GameViewer远程,就能帮你低成本打造电脑拓展副屏。 简单来说,副屏串流就是能让你多出一块显示屏。在打游戏…...

SQL Injection | SQL 注入概述

关注这个漏洞的其他相关笔记:SQL 注入漏洞 - 学习手册-CSDN博客 0x01:SQL 注入漏洞介绍 SQL 注入就是指 Web 应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是可控的,并且参数会带入到数据库中执行,导致…...

【Linux 从基础到进阶】磁盘I/O性能调优

磁盘I/O性能调优 1. 引言 磁盘I/O性能是决定服务器整体性能的关键因素之一。磁盘I/O性能的瓶颈常常会影响数据库、文件系统以及虚拟化平台等关键应用的响应时间。因此,磁盘I/O调优是系统管理员不可忽视的任务。 本文将介绍影响磁盘I/O性能的主要因素,…...

浅谈AGI时代的“数据枢纽”——向量数据库

一、前言 人工智能的关键,不只是构建好算力、算法、模型,更重要的是做好数据的清洗、处理、挖掘等问题。一定程度上,智能时代,企业数据处理能力有多强,决定了业务发展的天花板有多高。 在企业数智化转型过程中&#x…...

生成 Excel 表列名称

Excel 大家都用过,它的列名是用字母编号的,A 表示第一列,B 表示第二列,AA 表示第27列,AB 表示第28列等等。 现给定一个数字,如何得到列名称呢。比如输入28,输出 AB。 一开始以为就是一个简单的…...

基于yolov10的烟雾明火检测森林火灾系统python源码+pytorch模型+评估指标曲线+精美GUI界面+数据集

【算法介绍】 基于YOLOv10的烟雾明火检测森林火灾系统是一种先进的火灾预警系统,它结合了深度学习和计算机视觉技术,能够实时检测和分析森林中的烟雾和明火,从而有效预防和控制森林火灾的发生。 该系统主要基于YOLOv10模型进行构建&#xf…...

UltraISO(软碟通)制作U盘制作Ubuntu20.04启动盘

目录 一、启动盘制作 1、工具准备 2、打开UltraISO后,点击左上角的文件,在打开的下拉项中,选择打开准备好的Ubuntu系统20.04 LTS镜像文件(ubuntu-20.04-desktop-amd64.iso); 3、然后点击启动->写入硬盘映像 4、在弹出的窗…...

【EtherCAT实践篇一】TwinCAT 3安装、使用

TwinCAT 基于 PC 的开放式控制技术 倍福推出的基于 PC 的控制技术定义了自动化领域的全球标准。在软件方面,1996 年推出的 TwinCAT(The Windows Control and Automation Technology,基于 Windows 的控制和自动化技术)自动化套件是…...

4、CSS3笔记

文章目录 四、CSS3CSS3简介css3概述CSS3私有前缀什么是私有前缀为什么要有私有前缀常见浏览器私有前缀 CSS3基本语法CSS3新增长度单位CSS3新增颜色设置方式CSS3新增选择器CSS3新增盒模型相关属性box-sizing 怪异盒模型resize 调整盒子大小box-shadow 盒子阴影opacity 不透明度 …...

Docker无法拉取镜像解决办法

Docker 无法拉取镜像解决办法 一.现象描述 在docker拉取镜像的时候重复拉取镜像然后超时。 二.解决办法 1.配置国内镜像源地址加速 vi /etc/docker/daemon.json在文件中增加如下内容 { "registry-mirrors": ["https://docker.m.daocloud.io","h…...

Ubuntu 20.04安装Qt 5.15(最新,超详细)

Ubuntu 20.04安装Qt 5.15 1. 准备注册Qt账号安装依赖下载安装工具 2. 安装3. 测试参考 前言 Qt 是一个跨平台的应用程序框架,它支持开发 C 图形用户界面应用程序。Qt 可以用于开发运行在多种操作系统上的应用程序,包括 Windows、Linux、macOS 和各种移动…...

桂林旅游一点通:SpringBoot平台应用

3系统分析 3.1可行性分析 通过对本桂林旅游景点导游平台实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本桂林旅游景点导游平台采用SSM框架,JAVA作…...

【WPF】04 Http消息处理类

这里引入微软官方提供的HttpClient类来实现我们的目的。 首先,介绍一下官方HttpClient类的内容。 HttpClient 类 定义 命名空间: System.Net.Http 程序集: System.Net.Http.dll Source: HttpClient.cs 提供一个类,用于从 URI 标识的资源发送 HTTP 请…...

如何精准设置线程数,提升系统性能的秘密武器!

线程数设定多少更合适? 线程数的设定需要根据任务的类型、系统资源、以及并发需求来进行权衡。设定合适的线程数可以有效提升系统的性能,但设置过多或过少都会影响程序的效率。以下是一些关键因素和计算方法,用于帮助确定最合适的线程数。 …...

正则表达式:从入门到精通

正则表达式(Regular Expression,简称 regex)是一种强大的文本匹配和处理工具。它可以用于搜索、替换、验证和提取文本中的特定模式。本文将带您深入了解正则表达式的各个方面,从基础知识到高级技巧。 1. 基础知识 1.1 什么是正则表达式? 正则表达式是由一系列字符和特殊…...

CRMEB标准版Mysql修改sql_mode

数据库配置 1.宝塔控制面板-软件商店-MySql-设置 2.点击配置修改,查找sql-mode或sql_mode (可使用CtrlF快捷查找) 3.复制 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 然后替换粘贴,保存 注:MySQL8.0版本的 第三步用…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

EtherNet/IP转DeviceNet协议网关详解

一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

浅谈不同二分算法的查找情况

二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况&#xf…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率&#xff0c…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...