2024-09-13 冯诺依曼体系结构 OS管理 进程

news2024/11/15 7:32:01

一、冯·诺依曼体系结构

1. 外部设备(外设):

分为输入设备和输出设备

输入设备:键盘、网卡、鼠标、网卡、磁盘(外存)、摄像头等

输出设备:显示器、磁盘、网卡、打印机等

2. 存储器

内存

3. 中央处理器(CPU)

运算器 + 控制器

CPU在数据层面,不会和外设直接互动,而只和内存进行交互

场景:(scanf / printf)→ 二进制文件 → 文件 → 磁盘 → 外设

任何程序在执行之前,都需要从磁盘上被加载到内存中,以便CPU能够访问并执行其指令

当数据在计算机间流转时,本质上是在不同的设备间进行拷贝

设备的拷贝效率本质就是计算机的效率

二、操作系统(OS)

1. 一种进行 软硬件资源 管理 的 软件

内核(kernel):进程/任务/线程管理,文件系统,内存管理,驱动管理

其他程序:shell,glibc,原生库,预装软件

2. 设计OS的目的

注:每一种硬件都要有自己对应的驱动程序

手段:操作系统有效地管理底层软硬件资源,确保其稳定运行、高效利用及安全性,以此为手段保障系统正常工作

目的:操作系统为上层用户提供了一个稳定、高效且安全的运行环境,以满足用户的需求和使用体验

3. OS管理

任何计算机对象的管理思路都遵循【先描述,再组织】的原则

【Q】为什么现在所有主流的面向对象的编程语言,都要提供:1)面向对象 2)标准库?

【A】面向对象对应“先描述”,标准库对应“再组织

【Q】程序能直接向硬件写入吗?

【A】不能,必须要通过操作系统

操作系统在设计上遵循最小权限原则,默认不信任任何用户进程,因此其核心功能被严格封装和保护,以维护系统的稳定性和安全性。

为了使上层应用程序能够利用操作系统的服务,操作系统必须暴露一系列精心设计的接口,这些接口即系统调用接口。这些接口是操作系统与用户空间应用程序之间的唯一正式交互通道,且这些接口通常以C语言的形式提供,以确保跨平台和跨编程语言的兼容性以及高效的性能。

所有软件的底层,都必须和C语言直接或间接相关!

系统调用接口是操作系统提供的一种机制,它允许上层应用程序与操作系统内核进行交互。对于一般程序员而言,直接使用系统调用接口进行开发确实存在一定难度,因为这要求开发者具备较为深厚的操作系统知识,以及对底层硬件和系统资源的深入理解。

图形化用户界面(GUI)则通常与特定的图形库或框架相关联,它为程序员提供了一套更为直观的开发工具集,使得应用程序的交互设计更加简便。

三、进程

进程管理 —— 先描述,再组织

PCB(Process Control Block):转化成对某种数据结构的管理

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

操作系统通过进程的属性数据来管理

struct task_struct{
    int pid;
    int status;
    int prio;
    void* memptr;
    上下文;
    struct task_struct* next;
}

进程 = 内核数据结构(Linux下的PCB是task_struct)+ 程序的代码和数据

运行起来的程序 → 根据 task_struct 属性,进程会被OS调度器调度,运行

【Q】为什么要有PCB?

【A】因为需要先把对象描述起来,再才能组织管理

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

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

相关文章

Java面试篇基础部分-Java线程池工作原理

线程池的出现,主要是用来管理一组线程的工作运行状态,这样可以方便JVM更好的利用CPU资源。 Java线程池的工作原理:JVM先根据用户的参数创建一定数量的可运行的线程任务,并且将这些任务放入到队列中,在线程创建之后,启动这些任务。 如果当线程数超过最大线程数,这个线程数…

软件卸载工具(windows系统)-geek

有时候软件卸载会很麻烦,使用geek会比较方便。但是针对一些特别大的软件,geek也好像会稍微费点劲(比如MATLAB2022A),不过针对一般常规软件的卸载,geek就可以有效地完全卸载了,使用方法也很简单,…

W34kn3ss

靶机下载地址 https://www.vulnhub.com/entry/w34kn3ss-1,270/ 靶机配置 主机发现 arp-scan -l 端口扫描 nmap -sV -A -T4 192.168.229.160 目录扫描 dirsearch -u "http://192.168.229.160" GETshell 80端口 http://192.168.229.160 这个页面表明&#xff0c…

代码随想录_刷题笔记_第二次

链表 — 环形链表 题目链接:142. 环形链表 II - 力扣(LeetCode) 题目要求: 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点&#xff0c…

【Delphi】遍历容器中所有的 TControl 控件

在 Delphi 中,你可以通过递归或者直接遍历 TForm 上的所有控件(TControl)。TForm 继承自 TWinControl,它有一个 Controls 属性,可以用于访问包含的所有控件。这个属性是一个数组,存储的是当前窗体上所有的控…

monorepo基础搭建教程(从0到1 pnpm+monorepo+vue)

monorepo 前言1、搭建空项目并配置pnpm-workspace.yamlpnpm initpnpm-workspace.yaml 2.配置packages测试文件配置相关内容 3.引入packages内容至公共package.json4.创建测试项目,并引入公共包结语 前言 有个项目要引入一个第三方库,但是第三方库下载下…

C++_类和对象(中篇)—— const成员函数、取地址运算符的重载

目录 三、类和对象(中) 6、取地址运算符重载 1、const成员函数 2、取地址运算符的重载 三、类和对象(中) 6、取地址运算符重载 1、const成员函数 将const修饰的成员函数称之为const成员函数,const修饰成员函数…

【网络安全的神秘世界】目录遍历漏洞

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 先来了解两个概念: 身份认证:验证用户或者系统身份的过程,确保他们所声明的身份是真实的…

UE 禁用运行模式下的引擎内置按键

找到对应引擎版本安装目录下的BaseInput.ini文件,打开并修改

YoloV8改进策略:BackBone改进|Swin Transformer赋能YoloV8,性能跃升的新篇章

摘要 在深度学习领域,目标检测作为计算机视觉的核心任务之一,其性能的提升始终吸引着研究者们的目光。近期,我们创新性地将Swin Transformer这一前沿的Transformer架构引入到YoloV8目标检测模型中,通过替换其原有的主干网络,实现了检测性能的显著提升,为YoloV8系列模型注…

.Net网络通信组件 - TouchSocket

文章目录 .Net网络通信组件 - TouchSocket1、新建.Net8控制台项目2、Nuget安装TouchSocket组件3、编写服务端代码4、编写客户端代码5、编写Program代码6、运行效果7、日志组件(NLog)参考我的另一篇博客 .Net网络通信组件 - TouchSocket 1、新建.Net8控制…

网络安全学习路线,史上最全网络安全学习路线整理

很多小伙伴在网上搜索网络安全时,会出来网络安全工程师这样一个职位,它的范围很广,只要是与网络安全挂钩的技术人员都算网络安全工程师,一些小伙伴就有疑问了,网络安全现在真的很火吗? 那么无涯就带大家看…

《高等代数》范德蒙德行列式(应用)

说明:此文章用于本人复习巩固,如果也能帮助到大家那就更加有意义了。 注:1)此题中的行列式是缺失了一行的范德蒙德行列式,解题思路是将其与范德蒙德行列式进行对比,我们将其添上一行和一列补成范德蒙德行列…

解决SPI1在发送和接收8位数据时出现接收不同步的问题

STM32G474的SPI1工作在主机模式,将SPI1_MISO和SPI1_MOSI连接一起,实现自发自收测试。但是在“使用8位数据自发自收时”时,发现接收数据不是同步的。虽然SPI1初始化正确,但是还需要对SPI1_DR寄存器进行强制转换,否则&am…

2024年网络安全人才发展报告一览

前不久,由信通院、工业和信息化部教育与考试中心、中国网络空间新兴技术安全创新论坛等单位联合发布了《2024网络安全产业人才发展报告》,长达87页的调研报告深度剖析了目前中国网络安全产业人才供需、分布、就业等现状,这里,星尘…

C++ 第三讲:内存管理

C 第三讲:内存管理 1.C内存分布2.内存管理方式2.1C语言内存管理方式2.2C内存管理方式2.2.1new\delete操作内置类型2.2.2new\delete操作自定义类型 3.operator new与operator delete函数4.new和delete实现原理4.1内置类型4.2自定义类型 5.定位new5.1内存池的基本了解…

基于Java的学生档案管理系统的设计与实现

基于springbootvue实现的学生档案管理系统 (源码L文ppt)4-065 第4章 系统设计 4.1 总体功能设计 学生档案管理系统的总体功能设计包括学生信息管理、课程管理、教师信息管理、成绩管理和系统配置管理。系统将提供用户友好的界面,支…

【网络】传输层协议TCP

TCP协议 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP在IP(Internet Protocol,互联网协议)网络层上提供…

【Linux】—— muduo网络库的安装配置与使用

muduo网络库编程 Linux环境下Epollpthread线程库 Boost库安装与使用 安装Boost库 下载boost库源码,linux环境解压 tar -zxvf boost_1_69_0.tar.gz 解压完成后,进入该目录,查看内容 运行bootstrap.sh工程编译构建程序 ./bootstrap.sh …