多线程和多核芯片

堆栈指针:指向内存中当前栈的顶端,包含输入过程中的有关参数、局部变量以及没有保存在寄存器中的临时变量 。
PSW:程序状态字寄存器,跟踪当前系统状态 。在调和I/O中,有重要作用 。
时间多复用的CPU中,操作系统往往会停止运行一个程序而运行另一个 。所以,每次当操作系统停止运行一个程序时,操作系统会保存所有寄存器的值 。
现在CPU能够有单独访问、解码、执行单元 。流水线如下所示:
超表量CPU:
多线程和多核芯片
多线程允许CPU保持两个不同的线程状态,并在纳秒级的时间完成切换 。但是并不提供真正的并行处理,在一个时刻只有一个进程在运行 。
线程是一种轻量级进程 。每个线程对操作系统来说都像是一个CPU 。
多核芯片如下:
GPU:有成千上万个微核组成的处理器 。
内存
寄存器和CPU一样快 。
高速缓存,由硬件控制 。(RAM,随机存储器 。可读可写,机器关闭,则数据丢失 。)
时钟周期的解释:
主存:RAM(易失性)\ROM、PROM和闪存 。
磁盘:机械装置 。有磁道 。
i/o设备 操作系统概念 进程
进程本质上是操作系统执行的一个程序 。(可以看做是容纳运行一个程序所有信息的容器) 。
与每个进程相关的是地址空间 。从最小存储位置到某个最大值的存储位置的列表 。在这个地址空间中,进程可以进行读写操作 。
进程间的通信:
地址空间
用主存来保护一些正在执行的程序 。虚拟内存技术:把部分地址空间装入主存,部分留在磁盘上 。需要时来回交换 。
文件
创建文件、删除文件、读文件、写文件都需要系统调用 。
目录:可以把文件分组 。目录之间嵌套,产生文件系统 。
管道
管道是虚文件,可以链接两个进程 。
保护
rwx位:
r表示可读,可以读出文件的内容 --数字4表示
w表示可写,可以修改文件的内容 --数字2表示
x表示可执行,可运行这个程序 --数字1表示
没有权限的位置用-表示
Shell 系统调用
2021.6.30
进程和线程
进程是对正在运行中的程序的一个抽象 。
即使可以使用的CPU只有一个,他们也支持(伪)并发操作 。会将一个单独CPU抽象为多个虚拟机的CPU 。
原因:CPU智能运行一个进程,但是会在每个进程之间不停地切换,所以会产生并行的感觉,即:(伪)并行 。
进程模型
每个进程都有各自的伪CPU,CPU也会在各个进程之间来回切换 。
进程是某一类特定活动的总和 。他有程序、输入输出以及状态 。
进程的创建 系统初始化(init)
ps 程序可以列出正在运行的进程
正在运行的程序执行了创建进程的调研(fork)
用户请求创建一个新进程
交互式用户请求,双击某个软件 。
初始化一个批处理工作
主要命令如下:

多线程和多核芯片

文章插图
父子进程各有不同的地址空间 。
进程的终止 正常退出
exitlinuxExitProcesswindows
错误退出
cc foo.cc
严重错误
直接终止进程 。
被其他进程杀死
killlinuxTerminateProcesswindows
进程体系
UNIX:整个操作系统中所有的进程都隶属于一个单个以init为根的进程树 。