chst365's blog chst365's blog
首页
  • Git
  • 网络
  • 操作系统
  • 浏览器
  • webpack
  • JavaScript
  • TypeScript
  • 性能
  • 工程化
  • React
  • 编程题
  • React技术揭秘
  • 算法
  • Node
  • 编码解码
  • NodeJS系列
  • Linux系列
  • JavaScript系列
  • HTTP系列
  • GIT系列
  • ES6系列
  • 设计模式系列
  • CSS系列
  • 小程序系列
  • 数据结构与算法系列
  • React系列
  • Vue3系列
  • Vue系列
  • TypeScript系列
  • Webpack系列
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

chst365

DIV工程师
首页
  • Git
  • 网络
  • 操作系统
  • 浏览器
  • webpack
  • JavaScript
  • TypeScript
  • 性能
  • 工程化
  • React
  • 编程题
  • React技术揭秘
  • 算法
  • Node
  • 编码解码
  • NodeJS系列
  • Linux系列
  • JavaScript系列
  • HTTP系列
  • GIT系列
  • ES6系列
  • 设计模式系列
  • CSS系列
  • 小程序系列
  • 数据结构与算法系列
  • React系列
  • Vue3系列
  • Vue系列
  • TypeScript系列
  • Webpack系列
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Git

  • 网络

  • 操作系统

    • 进程与线程
      • 小例子
      • 深入理解
        • 进程(线程+内存+文件/网络句柄)
        • 线程(栈+PC+TLS)
      • 进程间怎么交互
      • 线程间怎么交互
      • 总结
    • 进程通信
    • 进程调度策略
    • 死锁
    • I O多路复用
  • 开发必备
  • 操作系统
chst365
2022-08-31
目录

进程与线程

# 小例子

我们打开一个微信软件,这时就开启了一个进程,当在微信里进行各种操作(查看朋友圈、扫一扫等),这么多的操作就是线程。 进程包含线程,线程是进程的一个子集 进程:在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程是资源分配的最小单位。 线程:系统分配处理器时间资源的基本单元,或进程内独立执行的一个单元执行流。线程是程序执行的最小单位

# 深入理解

# 进程(线程+内存+文件/网络句柄)

# 内存

我们通常所理解的内存是我们见到的(2G/4G/8G/16G)物理内存。这里的内存是逻辑内存。是内存的寻址空间。每个进程的内存是相互独立的。

# 文件/网络句柄

是所有的进程所共有的,如打开同一个文件夹,抢同一个网络的端口等这样的操作是被允许的。

# 线程

# 线程(栈+PC+TLS)

# 栈

我们通常都说调用堆栈,其实这里堆是无含义的,调用堆栈就是调用栈的意思。那么栈里面有什么呢?从主线程的入口main函数,会不断的进行函数调用,每次函数调用,会把所有的参数和返回地址压入栈中。

# PC(程序计数器)

操作系统真正运行的是一个个线程,而进程只是线程的一个容器。 PC就是指向当前的指令,指令放在内存中。 每个线程都有一串自己的指针,指向自己当前所在内存的指针。 计算机绝大部分是数据和程序存储在同一片内存里,即内存既有数据变量又有程序。 所以PC指针指向内存。 缓冲区溢出 我们经常听到这个漏洞。如:有个表单要输入用户名,本来是用来存数据的地方。黑客把数据输入的特别长,长度超出给数据存储的内存区,跑到了给程序分配的一部分内存中。黑客可通过这种办法将要运行的代码写入用户名框中,来植入进来。解决办法:限制用户名长度不超过其缓冲区大小。

# TLS(线程本地存储)

线程独立的内存就是TLS。存储线程独有的数据。

# 进程间怎么交互

通过TCP/IP的端口来实现

# 线程间怎么交互

有一大块共享的内存,只要大家的指针是同一个就可看到各自的内存。

# 总结

1.进程要分配一大部分的内存,而线程只需要分配一部分栈就可以了. 2.一个程序至少有一个进程,一个进程至少有一个线程. 3.进程是资源分配的最小单位,线程是程序执行的最小单位。 4.一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行.

#开发必备#操作系统
上次更新: 2022/11/29, 15:43:28
websocket
进程通信

← websocket 进程通信→

最近更新
01
面试官
03-27
02
this&指针&作用域&闭包
03-27
03
前端
03-27
更多文章>
Theme by Vdoing | Copyright © 2019-2025 chst365 | 豫ICP备17031889号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式