跳到主要内容

操作系统

进程、线程

进程是系统进行资源分配和调度的基本单位,特征:动态性、并发性、异步性、独立性

线程是 CPU 调度和分派的基本单位,线程是进程的子任务

区别:

  • 一个线程只属于一个进程,一个进程可以有多个线程
  • 进程是资源分配的最小单位,线程是CPU调度的最小单位
  • 进程在执行过程中有独立的内存单元,而多个线程共享进程的内存
  • 在创建、销毁、切换中,系统付出的时空开销,进程远大于线程

为了使参与并发执行的每个程序(含数据)都能独立地运行,在操作系统中必须为其配置一个专门的数据结构,称为进程控制块(Process Control Block, PCB)。 系统利用 PCB 来描述进程的基本情况和活动过程,进而控制和管理进程。由程序段、相关的数据段和 PCB 便构成了进程实体,简称进程

为什么要引入进程和线程的概念?

  • 为了能使程序并发执行,以提高资源利用率和系统吞吐量,并且可以对并发执行的程序加以描述和控制,引入了进程的概念
  • 引入线程是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性

同步、异步

进制

进制基数权值数值表示
二进制22 的幂次方0 和 1,通常以 0b 或 0B 前缀标识
八进制88 的幂次方0 ~ 7,通常以 0 开头
十进制1010 的幂次方0 ~ 9
十六进制1616 的幂次方0 ~ 9 和 A ~ F(表示十进制数 10 ~ 15),通常以 0x 或 0X 开头

下面是各进制之间的换算方式:

  1. 十进制转换为其他进制:采用除基取余法,将十进制数不断除以对应进制的基数,直到商为 0,将余数倒序排列即可得到对应进制的数。若是转为十六进制,则 10 到 15 分别用字母 A 到 F 表示

  2. 其他进制转换为十进制:从右往左数,将每一位上的数值乘以对应进制的幂次方,再将结果相加即可得到十进制数。

    1. 如将二进制 1010 转为十进制:(0 * 2^0) + (1 * 2^1) + (0 * 2^2) + (1 * 2^3) = 0 + 2 + 0 + 8 = 10,即将二进制数的每一位乘以 2 的对应幂次方,并将结果相加。
  3. 八进制和二进制之间的转换:将八进制数每一位转换为对应的三位二进制数,或将三位二进制数转换为对应的一位八进制数。

  4. 十六进制和二进制之间的转换:将十六进制数每一位转换为对应的四位二进制数,或将四位二进制数转换为对应的一位十六进制数。

  5. 十六进制和八进制之间的转换:先将十六进制数转换为二进制数,再将二进制数每三位转换为对应的一位八进制数,或将八进制数每一位转换为对应的三位二进制数,再将二进制数转换为十六进制数

示例:将十进制数 500 转为对应进制

进制结果
2111110100
8764
10500
161f4

内存管理

进程管理

文件系统管理

输入输出设备管理