计算机工作原理

目录

♫什么是硬件

♫什么是软件 

♫什么是操作系统

♫什么是进程

♫PCB的相关属性

♫内存管理

♫进程间通信


♫什么是硬件

现代计算机大多遵循冯大佬提出的冯诺依曼体系结构,即计算机由cup(包括运算器和控制器),存储器,输入设备和输出设备组成。冯诺依曼体系结构说的就是一种计算机硬件的结构。硬件是计算机系统中的实体组件(主机、显示器、键盘、鼠标、打印机、扫描仪、存储设备等),能够影响计算机的性能和稳定性,通常由电子、机械和电路组成,它们被设计为执行特定的任务,并且与计算机软件和操作系统配合使用,从而实现计算机系统的功能。

♫什么是软件 

 软件是指由计算机程序和相关数据组成的计算机系统中的部分。它是计算机系统中的一种非物质组成部分,与硬件相对应。软件可以分为系统软件和应用软件两大类。

系统软件:系统软件是指操作系统、编译程序、驱动程序等可以控制计算机硬件和支持应用软件运行的程序。

应用软件:应用软件是指各种具有特定功能的程序,如办公软件、游戏、浏览器等。

♫什么是操作系统

操作系统(Operating System,简称OS)是一种管理计算机硬件和软件资源的系统软件

对于硬件:操作系统通过设备驱动程序与计算机的硬件进行交互,控制硬件设备的运行状态,管理输入输出设备等,使得应用程序可以通过操作系统间接地使用硬件,而不用直接与硬件打交道。

对于软件:操作系统负责管理系统资源,包括内存、CPU时间、进程、线程等,提供进程、线程、内存、文件系统等管理,为应用程序提供了一个稳定的运行环境。

操作系统还可以划分为驱动程序(用于与硬件设备进行通信和控制的一种软件),操作系统内核(操作系统的核心,对上提供稳定的运行环境,对下管理硬件资源),系统调用(操作系统给应用软件提供的API)三部分,当有程序想调用硬件设备,需要先通过系统调用,把操作指令告诉给系统内核,内核再调用驱动程序。进而操作硬件设备。

♫什么是进程

一个运行起来的程序就是一个进程,在电脑的任务管理器可以看到本机正在运行的进程:

可以看到程序一旦运行起来,操作系统就会为它们分配一些资源,所以,进程是操作系统进行资源分配的基本单位

注:操作系统分配CPU时采用并行(同一时刻,两个核心上的进程同时运行)和并发(同一时刻,一个核心上只能运行一个进程,但进程间切换的够快,让人感觉几个进程同时运行)两种方式

进程是重要的软件资源,是由操作系统负责描述和组织的:

描述:操作系统基本上都是由C/C++(性能高)写的,它们是通过C语言的结构体来描述进程的,这个结构体也叫作PCB(进程控制块)

组织:操作系统是通过类似双向链表的结构来组织进程的,创建一个进程就是创建一个PCB插入链表,销毁一个进程就是删掉一个PCB节点,任务管理器上的进程表就是遍历链表的结果

♫PCB的相关属性

进程控制块(PCB)是操作系统中用于管理进程的数据结构,它包含了许多进程相关的属性,其中一些最重要的属性如下:

  1. 进程标识符(PID):每个进程都有唯一的PID,操作系统通过PID来识别和管理进程。

  2. 内存管理信息:进程的内存管理信息,如内存分配情况、内存保护等都可在PCB中找到。

  3. 文件描述符表:如果进程打开了文件,那么PCB中会记录一个文件描述符表,用于记录进程打开的文件及其状态。

  4. 进程状态:进程可以处于运行、就绪、阻塞等状态之一。PCB包含了当前进程的状态。

  5. 进程优先级:PCB中也包含了当前进程的优先级,操作系统通过优先级来调度进程。

  6. CPU寄存器的值:PCB中记录了进程在CPU寄存器中的值,这些值可用于保存进程的上下文信息(进程执行的“中间状态”),或在进程暂停时恢复进程的执行。

  7. 记账信息:统计每一个进程在CPU上占用的时间和执行的指令数目来调整进程的调度。

  8. IO状态:PCB还包含了当前进程IO操作的状态,如等待读写、正在读写等。

♫内存管理

为了避免一个进程因为越界访问而操作另一进程的内存地址,进程所用的内存空间是虚拟地址(不是直接指向物理内存中的地址,是可变的),而不是物理地址(对应的是实际存储器中的位置,是不可变的)。通过操作系统和专门的硬件设备可以将虚拟地址映射到物理地址上,操作系统内核一旦发现进程越界访问,就会反馈错误信号,终止该进程。 

♫进程间通信

内存管理能有效的隔绝进程,但有时进程间需要进行数据交换,这就得在隔离的基础上开个口子。进程间通信的实现方法有很多种,它们的核心思路是创建一个多个进程都能访问的公共空间,基于这个空间来进行数据交互。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

竞赛 深度学习YOLO抽烟行为检测 - python opencv

文章目录 1 前言1 课题背景2 实现效果3 Yolov5算法3.1 简介3.2 相关技术 4 数据集处理及实验5 部分核心代码6 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习YOLO抽烟行为检测 该项目较为新颖,适合作为竞赛课…

浪涌防护:TSS管的工作原理与应用?|深圳比创达EMC

浪涌防护:TSS管的工作原理与应用?相信不少人是有疑问的,今天深圳市比创达电子科技有限公司就跟大家解答一下! 一、TSS工作原理 TSS半导体放电管是一种电压开关型瞬态抑制二极管,即涌压抑制晶体管,或称为导…

Linux内核的.config 配置文件和defconfig 配置文件

Linux 内核可以通过输入“make menuconfig”来打开图形化配置界面,menuconfig 是一套图形化的配置工具 一、图形化界面的操作 menuconfig 图形化的配置工具需要 ncurses 库支持。ncurses 库提供了一系列的 API 函数供调用者生成基于文本的图形界面,因此…

Typora+PicGo+Github+CSDN梦幻联动

文章目录 一、快速搭建个人免费图床二、Typora图片实现自动上传三、Typora图片上传到CSDN出现错误 一、快速搭建个人免费图床 之前写过一篇 快速搭建个人免费图床 的文章,但是每次都要把图片拖到PicGo里面才能生成链接很麻烦,而且在本地用Typora写的文章…

【jmeter】接口测试流程

1、Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。 Jmeter具备高移植性,可以实现跨平台运行。 Jmeter可以实现分布式负载。 Jmeter采用多线程,允许通过多个线程并发取样或通过独…

自动驾驶学习笔记(五)——绕行距离调试

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《2023星火培训【感知专项营】》免费课程—>传送门 文章目录 前言 调试内容 打开在线编辑器 打开pl…

广州华锐互动:VR模拟高楼层建筑应急逃生,提供身临其境的虚拟体验

随着城市化进程的不断加速,高层建筑越来越多地出现在我们的生活中。然而,高层建筑的安全问题也日益凸显。一旦发生火灾、地震等突发事件,如何迅速、安全地逃离高楼成为了人们关注的焦点。近年来,虚拟现实(VR&#xff0…

List小练习,实现添加图书,并且有序遍历

SuppressWarnings({"all"})public static void main(String[] args) {List list new LinkedList(); // List list new Vector(); // List list new ArrayList();list.add(new Book1("红楼小梦",35.5,"曹雪芹"));list.add(new B…

Linux:Mac VMware Fusion13以及CentOS7安装包

Linux:Mac VMware Fusion13以及CentOS7安装包 1. Mac VMware Fusion132. CentOS7安装包3. 安装 1. Mac VMware Fusion13 下载官网地址:https:www.vmware.com/products/fusion/fusion-evaluation.html 2. CentOS7安装包 注意是m芯片需要使用arm架构的i…

【STM32】--基础了解

一、STM32来历背景 1.从51到STM32 (1)单片机有很多种 (2)STM32内核使用ARM,但是ARM不一定是STM32 (3)ATM32是当前主流的32位高性能单片机 (4)STM32的特点:高…

如何从一门编程语言过渡到另一门编程语言?

在数字时代,软件开发领域不断进化,不同编程语言层出不穷。作为一位富有经验的开发者,你可能曾面临过一个重要的问题:如何顺利过渡到一门全新的编程语言? 这个问题不仅是对技术领域的学习,更是对职业生涯的…

海通国际:颐海国际第三方业务表现承压,关联方收入恢复

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,由于颐海国际(01579)发布2023年半年报:23H1主营业务收入同比-2.7%至26.16亿元,归母净利润同比36.0%至3.58亿元,海通国际发布关于颐海国际…