操作系统
进程、线程
进程是系统进行资源分配和调度的基本单位,特征:动态性、并发性、异步性、独立性
线程是 CPU
调度和分派的基本单位,线程是进程的子任务
区别:
- 一个线程只属于一个进程,一个进程可以有多个线程
- 进程是资源分配的最小单位,线程是
CPU
调度的最小单位 - 进程在执行过程中有 独立的内存单元,而多个线程共享进程的内存
- 在创建、销毁、切换中,系统付出的时空开销,进程远大于线程
为了使参与并发执行的每个程序(含数据)都能独立地运行,在操作系统中必须为其配置一个专门的数据结构,称为进程控制块(Process Control Block, PCB)。
系统利用 PCB
来描述进程的基本情况和活动过程,进而控制和管理进程。由程序段、相关的数据段和 PCB
便构成了进程实体,简称进程
为什么要引入进程和线程的概念?
- 为了能使程序并发执行,以提高资源利用率和系统吞吐量,并且可以对并发执行的程序加以描述和控制,引入了进程的概念
- 引入线程是为了减少程序在并发执行时所付出的时空开销,使
OS
具有更好的并发性
同步、异步
进制
进制 | 基数 | 权值 | 数值表示 |
---|---|---|---|
二进制 | 2 | 2 的幂次方 | 0 和 1,通常以 0b 或 0B 前缀标识 |
八进制 | 8 | 8 的幂次方 | 0 ~ 7,通常以 0 开头 |
十进制 | 10 | 10 的幂次方 | 0 ~ 9 |
十六进制 | 16 | 16 的幂次方 | 0 ~ 9 和 A ~ F(表示十进制数 10 ~ 15),通常以 0x 或 0X 开头 |
下面是各进制之间的换算方式:
-
十进制转换为其他进制:采用除基取余法,将十进制数不断除以对应进制的基数,直到商为 0,将余数倒序排列即可得到对应进制的数。若是转为十六进制,则 10 到 15 分别用字母 A 到 F 表示
-
其他进制转换为十进制:从右往左数,将每一位上的数值乘以对应进制的幂次方,再将结果相加即可得到十进制数。
- 如将二进制 1010 转为十进制:
(0 * 2^0) + (1 * 2^1) + (0 * 2^2) + (1 * 2^3) = 0 + 2 + 0 + 8 = 10
,即将二进制数的每一位乘以 2 的对应幂次方,并将结果相加。
- 如将二进制 1010 转为十进制:
-
八进制和二进制之间的转换:将八进制数每一位转换为对应的三位二进制数,或将三位二进制数转换为对应的一位八进制数。
-
十六进制和二进制之间的转换:将十六进制数每一位转换为对应的四位二进制数,或将四位二进制数转换为对应的一位十六进制数。
-
十六进制和八进制之间的转换:先将十六进制数转换为二进制数,再将二进制数每三位转换为对应的一位八进制数,或将八进制数每一位转换为对应的三位二进制数,再将二进制数转换为十六进制数
示例:将十进制数 500 转为对应进制
进制 | 结果 |
---|---|
2 | 111110100 |
8 | 764 |
10 | 500 |
16 | 1f4 |