初识操作系统进程线程

这里写目录标题

  • 回顾
  • 操作系统
  • OS:管理
  • 进程:
      • 进程属性:
      • 程序运行:
      • 内核态,用户态:
    • 线程
      • 线程可以共享的资源:
      • 线程不可共享的资源:
      • 注意:

回顾

TCP/IP
应用层:将 络中的包转换成应用程序需要的数据
传输层:端口 /UDP/TCP

  1. 确认应答(核心)
  2. 超时重传(默认500ms)
  3. 连接管理(三次握手/四次挥手)
  4. 滑动窗口(快重传)
  5. 流量控制
  6. 拥塞控制(慢启动)
  7. 延迟应答
  8. 捎带应答
  9. 面向数据流(粘包半包问题)
  10. 异常情况处理

IP协议
MTU MSS关系
MTU(1500)=MSS+传输层头部大小+ 络层的 头大小

操作系统

硬件组成:冯诺依曼体系结构/普林斯顿体系结构

输入设备:键盘/麦克风 存储:内存/磁盘 输出设备:显示器/音响 CPU

CPU和输入设备/输出设备 不能直接交互,必须依靠中间的存储部分(内存)

内存 VS 磁盘

内存 磁盘
读写速度:纳秒 读写速度:微秒
价格相对昂贵 价格相对便宜
数据不能持久化(重启后无) 可以持久化

OS:管理

一个执行任务就是一个进程
注:可执行任务(.exe)不是进程

PID 进程 ,是进程的身份ID,重启之后,进程 会改变(随机)

PCB(进程管理模块)(描述,组织)

管理类型:管理软件,管理硬件
职责管理:对外管理(用户部分),对内管理(内核)

进程:

是操作系统分配资源的最小单位

内核部分产生一个由双向链表组成的PCB(进程管理模块)

进程属性:

  1. PID(主键ID,身份标识)
  2. 状态信息(新建,就绪,运行,阻塞,终止
  3. 优先级(优先级越高,CPU权重越大)
  4. 记账信息(记录进程运行次数,防止CPU资源分配不均)
  5. 一组指针(需要使用的资源)
  6. 上下文信息(当分配到CPU资源时,执行,没有CPU资源后,暂时保存当前状态,等待下一次执行,这个过程叫上下文)

程序运行:

并发:只有一个资源,轮流执行
从宏观的角度看是同时进行的,从微观角度看是轮流执行的

并行:所有的应用一起运行
从宏观和微观看都是同时进行的

内核态,用户态:

一般的操作系统(如Windows、Linux)对执行权限进行分级:用户态和内核态。

操作系统内核作为直接控制硬件设备的底层软件,权限最高,称为内核态
用户程序的权限最低,称为用户态

最早的并发编程是多进程并发编程
多个进程不能共享资源的

线程

线程:系统调度资源的最小单位
(对比:进程:是操作系统分配资源的最小单位

线程是进程执行的最小单位,也是线程执行的实际单位
一个进程中最好包含一个线程,线程必须依附在进程当中

进程就好比工厂,线程就好比一个流水线

线程占用系统资源更少,时间更短

进程不可以共享资源,线程可以共享资源

线程可以共享的资源:

  1. 打开的文件
  2. 内存(使用new创建的对象)

线程不可共享的资源:

  1. 上下文
  2. 记账信息
  3. 状态
  4. 线程栈信息
  5. 优先级

注意:

线程的数量不是越多越好

当线程的数量达到某个合适的值是最好的,如果有大量的线程,会出现线程之间争抢和CPU的过度调度问题了,而CPU调度是需要消耗系统资源的

那多少线程是最好的/p>

  • 要看具体的场景
  • 密集计算的CPU任务,IO(文件读写)型任务,
  • 计算型:线程的数量=CPU数量是最好的
  • IO型:理论上,线程数量越多越好

进程 –> 线程(轻量级的进程)–> 协程(轻量级的线程)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月20日
下一篇 2021年3月20日

相关推荐