Linux基础4-进程/PCB/分页/计算机基本组成

进程

进程管理命令

一组有序指令+数据+资源的集合

  • 进程: 运行中的程序(加载到内存上 不是说执行才叫做进程)
    –是动态的 是程序的一次实例化(一次执行过程)
  • 程序: 存储在磁盘上的可执行的二进制文件(比如a.out文件)
  • 代码: C C++ java

进程属性数据

ID    Status(状态)    程序计数器    程序上下文    资源

进程相当于历史 进程属性相当于史书

Linux系统如何管理进程

启动进程:    路径+可执行文件名    (./main)
后台运行:    路径+可执行文件名 &  (./main &)

在前台执行的进程会占据终端的控制权 当进程执行结束后才能执行下一个进程 在后台执行的进程无论是否结束 都能立马执行下一条命令
查看进程:
ps

  • -e(系统上运行的所有进程)
  • -f (显示进程的详细信息)
  • top (进入以后用q退出)–隔1s刷新一次 查看系统当前资源使用情况,CPU 进程统计 内存 交换分区

终止进程: kill pid
前后台切换:

  • bg 唤醒程序到前台
  • fg 唤醒程序到后台 后面跟的是任务号

查看任务号: jobs -L
暂停进程: kill -stop pid

举例:
sleep 10 启动一个进程 这个进程等十秒钟就结束
ps 通过ps去查看
以下是显示出的进程详细信息

  UID      PID      PPID      PWID     NWIPA     PR
执行用户   主进程    副进程    线程ID   线程数    优先级

系统编程基础知识

PCB

PCB是在内核里面的
1.系统对进程的管理–>PCB进程控制块 结构体(每个进程都有一个PCB结构体变量)
2.进程分两部分 一部分pcb 一部分进程实体,进程实体都是通过pcb来管理的
3.不选择数组来存储pcb 因为时间复杂度太高了o(n)
选择双向循环链表将pcb管理起来(不需要连续 每一个节点都会有指针 一个指针指向上面的位置 一个指向下面的位置 第一节点的前驱指向最后一个 最后一个的后继指向第一个) 这样搜索起来很方便 插入时间复杂度为o(e)在头尾插时.
4.先有pcb 再有进程实体(操作系统是先根据pcb才知道这是个线程)
5.释放的时候先释放进程实体 再释放pcb
6.当进程实体已经释放 pcb结构依旧保存 这个时候的进程叫做僵死进程(这个调试不出来 必须写代码就考虑进去)
在这里插入图片描述

进程状态

新建
就绪(万事俱备只欠东风 由进程调动算法决定–优先级,先来先行,短任务优先…等等)
执行
退出
阻塞(即使cpu上没有进程 阻塞进程也没法运行 因为这个进程的资源没准备好)
在这里插入图片描述
在这里插入图片描述

时间片轮转法

cpu内存有限 用时间片轮转法 每个进程轮流执行 到时间就必须换别的进程
并行:一起执行好几个进程
并发:看似同时执行 其实是切换执行(主要用)

内存管理(分页)

内存空间有限 操作系统要对内存进行有限的管理
虚拟文件系统VFS: 把底层I/O的差异屏蔽掉 (通过使用同一套文件 I/O 系统 调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文件系统格式;更进一步,对文件的操作可以跨文件系统而执行。)
虚拟存储器: 把底层的VFS虚拟文件系统的差异屏蔽掉 (不需要关注数据在哪里)
虚拟进程:
在这里插入图片描述分页:
将内存分为很多区块
简单分页(进程加载可以不连续)
操作系统为每一个进程维护一个页表(如下图)

每一页存在了哪一个帧上(一般一页4k大小比较合适)
下图中:
逻辑地址:对于程序第二页向下偏移128 即2 128(程序中访问的都是逻辑地址)
真实的物理地址:(最终访问的时候 保存或者获取值时就需要把逻辑地址转为物理地址来访问)
A进程中 64K+128
B进程中 17
4K+128
在这里插入图片描述页表中的起始地址都需要在PCB中保存
内存碎片:有时候内存占不完页的内存 就会有内存碎片

分页解释:

在linux操作系统中,CPU在执行一个进程的时候,都会访问内存。
CPU并不是直接访问物理内存地址,而是通过虚拟地址空间来间接的访问物理内存地址。
所谓的虚拟地址空间,是操作系统为每一个正在执行的进程分配的一个逻辑地址,在32位机上,其范围从0 ~ 4G-1.操作系统通过将虚拟地址空间和物理内存地址之间建立映射关系,让CPU间接的访问物理内存地址。

  1. 通常将虚拟地址空间以512Byte ~ 8K,作为一个单位,称为页,并从0开始依次对每一个页编号。这个大小通常被称为页面
    将物理地址按照同样的大小,作为一个单位,称为框或者块,也从0开始依次对每一个框编号。
    操作系统通过维护一张表,这张表上记录了每一对页和框的映射关系。如图:
    在这里插入图片描述

备注:
1.物理地址:
加载到内存地址寄存器中的地址,内存单元的真正地址。在前端总线上传输的内存地址都物理内存地址,编号从0开始一直到可用物理内存的最高端。物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查.

2.逻辑地址:
CPU所生成的地址。逻辑地址是内部和编程使用的、并不唯一。
3.分页的最大作用:
使得进程的物理地址空间可以是非连续的。
物理内存被划分为一小块一小块,每块被称为帧(Frame)。分配内存时,帧是分配时的最小单位,最少也要给一帧。在逻辑内存中,与帧对应的概念就是页(Page)。
逻辑地址的表示方式是:前部分是页码后部分是页偏移。

计算机基本组成:

冯*诺依曼 体系:
将计算机分成五大部分
运算器
控制器
(这两个在CPU里,运算器相当于加法器–比如原码补码运算等)
存储器(内存)
输入设备 输出设备( I/O:键盘 显示器 鼠标 磁盘 网卡)

存储设备:

寄存器 缓存 内存 磁盘 外接设备
—|-------|---------------------->存储的量越来越大 存储的速度越来越慢 造价越来越便宜
寄存器 缓存—都是在CPU里集成的
磁盘 外接设备—用文件系统管理

CPU:中央处理器 硬件
内存:内存条
I/O:输入输出设备
在这里插入图片描述
通过线路连接 这些线路都在主板上(集成电路板)
加内存就是为了解决CPU 和I/O运行速度不匹配的问题

总线

1.地址总线–寻址 能寻址的范围 和地址总线的数量有关
PS:
32位计算机 32位操作系统 ALU(32位计算机和ALU的宽度相匹配 ALU是指计算机的计算能力)
32位最大能访问的内存大小是4G
2.控制总线 控制方向
3.数据总线 控制数据

操作系统

操作系统的管理:
进程线程管理
内存管理
文件管理

操作系统的发展:
串行处理------必须等一个完了才能继续下一个操作
批处理 --------提前录入很多任务 计算机一次处理
多道程序设计–在一个任务执行未完但空闲的时候调另外一个任务去做
分时-----------类似于时间片轮转法

实时----一旦资源足够立即进行执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值