ToB企服应用市场:ToB评测及商务社交产业平台

标题: Linux:冯诺依曼体系结构、利用系统、历程概念(一.初识历程) [打印本页]

作者: 老婆出轨    时间: 2024-6-14 23:50
标题: Linux:冯诺依曼体系结构、利用系统、历程概念(一.初识历程)


  

1.冯诺依曼体系结构

冯诺依曼体系结构是计算机体系结构中的一种基本设计原则,它描述了计算机系统的组成和运作方式。该体系结构由计算机科学家约翰·冯·诺伊曼(John von Neumann)于20世纪中期提出,被广泛应用于现代计算机系统的设计和实现中。
冯诺依曼体系结构包括以下几个关键组成部分:

总线与数据传输通路

在计算机系统中,各个设备之间通过总线毗连在主板上。总线是一组电子管道或毗连,它允许数据在设备之间传输,以及设备与 CPU 或内存之间进行通讯。总线可以传输各种类型的数据,包括指令、地址和数据。
   设备之间的数据流动本质是数据在差别设备之间往返拷贝,拷贝的整体速度是决定计算机效率的重要指标
  总线的作用是将计算机中的各种硬件设备毗连起来,使它们可以相互通讯和协作。通过总线,CPU 可以访问内存中的数据和指令,外部设备(如键盘、鼠标、硬盘等)可以与 CPU 或内存进行数据交换。
总线通常分为三种类型:地址总线、数据总线和控制总线。
总线毗连在主板上,通过电路板上的导线和毗连器进行物理毗连。当 CPU 或其他设备需要访问内存或进行数据交换时,它们会通过总线发送相应的控制信号和数据,然后在目的设备上进行处置惩罚或存储。
     
    
  为什么有内存这个部分

   
  计算机存储结构


   以是,我们上面看到的存储器是特指主存储器——内存
  计算机中不止有内存能存储。内存是计算机中用于临时存储数据和程序的一种存储介质,用于存储当前正在运行的程序和数据,是CPU可以或许直接访问的存储设备
  
2.利用系统(Operator System)

2.1 概念

   利用系统(Operating System,简称OS)是一种系统软件,它负责管理和控制计算机硬件资源,并为应用程序提供运行情况的软件集合
  
  

2.2 设计OS的目的


2.3 明白“管理”

   我们能下如许一个界说:
  在整个计算机软硬件架构中,利用系统的定位是一款纯正的“搞管理”的软件。它不但仅是一个程序集合,更是一个管理计算机系统的核心。
  先聚焦于管理硬件部分:

   利用系统、驱动程序和底层硬件之间的关系可以简单描述为:利用系统通过驱动程序与底层硬件进行交互和控制。
    利用系统通过驱动程序来管理和控制底层硬件,使得应用程序可以方便地访问和利用硬件设备。驱动程序充当了利用系统与硬件之间的桥梁,帮助利用系统实现对硬件设备的有效管理和控制。
  先描述再组织

"管理"指的是利用系统对计算机系统中的各种资源进行组织、分配、调治和控制,以实现有效的资源利用和系统运行
   对于硬件的管理本质上就是一个先描述再组织的过程。
  
     不只是硬件部分利用了这种思想,后面历程部分的内容也会用到如许的的思想
  2.4 用户利用


利用系统要给用户提供提供一个良好的运行情况:稳定,高效,安全
   为了保证这些,利用系统就不能直接让用户访问内部所有数据。
  用户利用接口的存在正是为了限制用户对内部数据的直接访问,并为用户提供一种安全、稳定且易于利用的方式与利用系统进行交互
  系统调用接口是利用系统提供给用户程序的一组函数或方法,用于让用户程序可以或许哀求利用系统提供的各种服务和资源。系统调用接口允许用户程序在运行过程中向利用系统发出哀求,以便执行特权利用或访问受掩护资源(也是利用系统提供给我们用户来访问调用数据资源的方式)
  通过限制用户对内部数据的直接访问,并提供用户利用接口和系统调用接口,利用系统可以有效地保证系统的稳定性、高效性和安全性
系统调用和库函数(lib)概念

利用系统通过暴露系统调用接口给用户程序来提供服务。用户程序可以通过系统调用与利用系统进行交互,获取所需的服务和资源。偶然,为了简化用户程序的开发,有心的开发者会对部分系统调用进行适度封装成库函数(库函数由用户提供),供用户程序调用。
   那printf函数与scanf函数,二者都要利用硬件。
  但是二者又是c语言里的库函数,但是能访问到硬件资源。就能阐明,二者一定封装了系统调用接口,以是才气不停顺着剪头向下
  库函数实现时,如果内部封装了多种利用系统的系统调用,那该语言便具有可移植性
那我们为什么之前不停没有直接利用过系统调用呢?
   直接利用系统调用需要对利用系统较为认识,而且不方便。
  以是库函数封装了系统调用后,更方便我们利用
  总结

利用系统的设计目的是管理计算机系统的软硬件资源,为用户程序提供执行情况。它通过对资源的描述和组织,以及提供系统调用和库函数的方式,来实现对计算机系统的管理和控制。
     
3.初识历程

3.1 基本究竟与引入

   在利用系统中,当一个程序被加载到内存中运行时,通常会涉及到内存中的数据拷贝。这涉及到两个概念:加载(Load)拷贝(Copy)
    
  

     3.2 历程概念

讲义概念:程序的一个执行实例,正在执行的程序等
内核观点:担当分配系统资源(CPU时间,内存)的实体
   历程=内核PCB对象+可执行程序 ==> 历程=内核数据结构+可执行程序
  内核数据结构是利用系统内核中用于组织和管理系统资源的数据形式或组织方式。这些数据结构通常用于描述和维护系统的状态、历程信息、内存分配、文件系统、设备驱动等方面的内容。一些常见的内核数据结构包括:
    3.3 描述历程—PCB

   历程信息被放在一个叫做历程控制块的数据结构中,可以明白为历程属性的集合。利用系统学科里称之为PCB(process control block)
  而在Linux利用系统下的PCB是task_struct
  3.4 task_struct—linux中的PCB

在Linux内核中,描述历程的结构体被称为 task_struct。task_struct 是 Linux 内核中非常重要的数据结构,用于表示和管理历程。每个正在运行或等待运行的历程都有一个对应的 task_struct 结构体。
task_struct 结构体包罗了大量描述历程状态和属性的字段,其中包括:
  1. struct task_struct {
  2.     // 进程标识符
  3.     pid_t pid;
  4.    
  5.     // 进程状态
  6.     int state;
  7.    
  8.     // 进程优先级和调度信息
  9.     int priority;
  10.     int policy;
  11.    
  12.     // 进程描述符
  13.     struct files_struct *files;
  14.    
  15.     // 进程的父子关系
  16.     struct task_struct *parent;
  17.     struct list_head children;
  18.    
  19.     // 进程的执行状态
  20.     struct pt_regs *thread_regs;
  21.     unsigned long stack;
  22.    
  23.     // 进程的内存管理信息
  24.     struct mm_struct *mm;
  25.    
  26.     // 进程的资源限制
  27.     struct rlimit rlim;
  28.    
  29.     // 信号处理器
  30.     struct sigaction sigaction[_NSIG];
  31.    
  32.     // 进程的调试信息
  33.     int debug_flags;
  34.     // 其他字段...
  35. };
复制代码

今天就先到这里把,下次就能把历程检察、状态、优先级什么的给讲讲了

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4