- 分析Linux内核创建一个新进程的过程 进程描述 进程描述符(task_struct) 用来描述进程的数据结构,可以理解为进程的属性。比如进程的状态、进程的标识(PID)等,都被封装在了进程描述符这个数据结构中,该数据结构被定义为task_struct进程控制块(PCB) 是操作系统核心中一种数据结构,主要表示进程状态。进程状态 fork() fork()在父... 分析Linux内核创建一个新进程的过程 进程描述 进程描述符(task_struct) 用来描述进程的数据结构,可以理解为进程的属性。比如进程的状态、进程的标识(PID)等,都被封装在了进程描述符这个数据结构中,该数据结构被定义为task_struct进程控制块(PCB) 是操作系统核心中一种数据结构,主要表示进程状态。进程状态 fork() fork()在父...
- Linux内核-进程管理 1.进程 #内核调度的对象是线程,不是进程 #对Linux而言,线程只是特殊的进程 #进程提供两种虚拟机制:虚拟处理器、虚拟内存 #创建进程通过fork()来从父进程复制创建进程 2.进程描述符 #任务队列:双向链表(每一项都是task_struct--->进程描述符) #Linux通过s... Linux内核-进程管理 1.进程 #内核调度的对象是线程,不是进程 #对Linux而言,线程只是特殊的进程 #进程提供两种虚拟机制:虚拟处理器、虚拟内存 #创建进程通过fork()来从父进程复制创建进程 2.进程描述符 #任务队列:双向链表(每一项都是task_struct--->进程描述符) #Linux通过s...
- 第三章:进程 进程概述 概念:执行中的程序进程状态:新的、运行、等待、就绪、终止 进程控制块(PCD) 是什么? process control block,包含与一个特定进程相关的信息。包含什么? 进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息、记账信息、I/O状态信息。 进程操作 创建:fork() pid进程标识符 创建过... 第三章:进程 进程概述 概念:执行中的程序进程状态:新的、运行、等待、就绪、终止 进程控制块(PCD) 是什么? process control block,包含与一个特定进程相关的信息。包含什么? 进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息、记账信息、I/O状态信息。 进程操作 创建:fork() pid进程标识符 创建过...
- Linux内核-进程调度 1.多任务 #抢占式多任务:由调度程序来决定什么时间停止一个进程的运行 #进程的时间片:分配给每个可运行进程的处理器时间段 2.Linux的进程调度 #O(1)调度程序 #反转楼梯最后期限调度算法(RSDL) #完全公平调度算法(CFS) 3.策略 #I/O消耗型和处理器消耗型进程: ... Linux内核-进程调度 1.多任务 #抢占式多任务:由调度程序来决定什么时间停止一个进程的运行 #进程的时间片:分配给每个可运行进程的处理器时间段 2.Linux的进程调度 #O(1)调度程序 #反转楼梯最后期限调度算法(RSDL) #完全公平调度算法(CFS) 3.策略 #I/O消耗型和处理器消耗型进程: ...
- Collection线程不安全的举例 前言单线程环境下多线程环境解决方案方案一:Vector方案二:Collections.sychronized()方案三:采用JUC里面的方法 HashSet线程不安全HashSet底层结构 HashMap线程不安全解决方法 前言 1、当我们执行下面语句的时候,底层进行了什么操作 new ArrayList... Collection线程不安全的举例 前言单线程环境下多线程环境解决方案方案一:Vector方案二:Collections.sychronized()方案三:采用JUC里面的方法 HashSet线程不安全HashSet底层结构 HashMap线程不安全解决方法 前言 1、当我们执行下面语句的时候,底层进行了什么操作 new ArrayList...
- 原子类AtomicInteger的ABA问题 连环套路 从AtomicInteger引出下面的问题 CAS -> Unsafe -> CAS底层思想 -> ABA -> 原子引用更新 -> 如何规避ABA问题 ABA问题是什么 假设现在有两个线程,分别是T1 和 T2,然后T1执行某个操作的时间为10秒,T2执行某个时间的操作是2秒,最开始T1,T2两个线程... 原子类AtomicInteger的ABA问题 连环套路 从AtomicInteger引出下面的问题 CAS -> Unsafe -> CAS底层思想 -> ABA -> 原子引用更新 -> 如何规避ABA问题 ABA问题是什么 假设现在有两个线程,分别是T1 和 T2,然后T1执行某个操作的时间为10秒,T2执行某个时间的操作是2秒,最开始T1,T2两个线程...
- 大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客... 大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客...
- Volatile和JMM内存模型的可见性 谈谈对Volatile的理解JMM是什么JMM的特性可见性代码验证 JUC(java.util.concurrent) 进程和线程 进程:后台运行的程序(我们打开的一个软件,就是进程)线程:轻量级的进程,并且一个进程包含多个线程(同在一个软件内,同时运行窗口,就是线程) 并发和并行 并发:同时访问某个东西,就... Volatile和JMM内存模型的可见性 谈谈对Volatile的理解JMM是什么JMM的特性可见性代码验证 JUC(java.util.concurrent) 进程和线程 进程:后台运行的程序(我们打开的一个软件,就是进程)线程:轻量级的进程,并且一个进程包含多个线程(同在一个软件内,同时运行窗口,就是线程) 并发和并行 并发:同时访问某个东西,就...
- 线程池 前言Callable接口注意 ThreadPoolExecutor为什么用线程池线程池的好处 架构说明创建线程池底层实现线程池的重要参数拒绝策略线程池底层工作原理线程池运行架构图为什么不用默认创建的线程池? 手写线程池采用默认拒绝策略采用CallerRunsPolicy拒绝策略采用 DiscardPolicy 拒绝策略采用DiscardOldes... 线程池 前言Callable接口注意 ThreadPoolExecutor为什么用线程池线程池的好处 架构说明创建线程池底层实现线程池的重要参数拒绝策略线程池底层工作原理线程池运行架构图为什么不用默认创建的线程池? 手写线程池采用默认拒绝策略采用CallerRunsPolicy拒绝策略采用 DiscardPolicy 拒绝策略采用DiscardOldes...
- 代码码云仓库地址:https://gitee.com/dzxmy/design_pattern 常用的创建型设计模式有:工厂方法模式,抽象工厂模式,建造者模式,单例模式。 不常用的创建型设计模式有:简单工厂,原型模式 一、简单工厂 定义:由一个工厂对象决定创建出哪一种产品类的实例 类型:创建型,但不属于GOF23种设计模式 适用场景: 工厂类负责创建的对象比较少... 代码码云仓库地址:https://gitee.com/dzxmy/design_pattern 常用的创建型设计模式有:工厂方法模式,抽象工厂模式,建造者模式,单例模式。 不常用的创建型设计模式有:简单工厂,原型模式 一、简单工厂 定义:由一个工厂对象决定创建出哪一种产品类的实例 类型:创建型,但不属于GOF23种设计模式 适用场景: 工厂类负责创建的对象比较少...
- 一、线程的创建和启动 import threading # 编写一个普通的函数,作为线程执行体def action(max): for i in range(max): print(threading.current_thread().getName() + " " + str(i)) for i in range(100): print(threading.curre... 一、线程的创建和启动 import threading # 编写一个普通的函数,作为线程执行体def action(max): for i in range(max): print(threading.current_thread().getName() + " " + str(i)) for i in range(100): print(threading.curre...
- 传统的io模型问题: 在传统的IO模型中,每个连接创建成功之后都需要一个线程来维护,每个线程包含一个while死循环,那么1w个连接对应1w个线程,继而1w个while死循环,这就带来如下几个问题: 线程资源受限:线程是操作系统中非常宝贵的资源,同一时刻有大量的线程处于阻塞状态是非常严重的资源浪费,操作系统耗不起线程切换效率低下:单机cpu核数固定,线程爆炸之... 传统的io模型问题: 在传统的IO模型中,每个连接创建成功之后都需要一个线程来维护,每个线程包含一个while死循环,那么1w个连接对应1w个线程,继而1w个while死循环,这就带来如下几个问题: 线程资源受限:线程是操作系统中非常宝贵的资源,同一时刻有大量的线程处于阻塞状态是非常严重的资源浪费,操作系统耗不起线程切换效率低下:单机cpu核数固定,线程爆炸之...
- 今天给大家推荐一本《操作系统真象还原》的书,为何呢?因情怀吧,博主曾经做过一本操作系统的书,如今又走到了博主的重合点这里,看到《操作系统真象还原》这本书,让博主想到了当年的那一本书,你们知道是什么吗?这个还是留给你们猜吧,嘻嘻。经过博主的书很多,当时我并没有想过,多年以后,我可以串联起这么多感慨来,想想曾经的同事,曾经的那些封面故事,如今也会经常历历在目。曾经的一本操作系统书因一只动物而起,... 今天给大家推荐一本《操作系统真象还原》的书,为何呢?因情怀吧,博主曾经做过一本操作系统的书,如今又走到了博主的重合点这里,看到《操作系统真象还原》这本书,让博主想到了当年的那一本书,你们知道是什么吗?这个还是留给你们猜吧,嘻嘻。经过博主的书很多,当时我并没有想过,多年以后,我可以串联起这么多感慨来,想想曾经的同事,曾经的那些封面故事,如今也会经常历历在目。曾经的一本操作系统书因一只动物而起,...
- 小编分享9本好书,与您一起迎接夏天,看到第一本书,是不是神清气爽?终于盼来了,嘻嘻! 小编分享9本好书,与您一起迎接夏天,看到第一本书,是不是神清气爽?终于盼来了,嘻嘻!
- 大概四年前陆陆续续读过 APUE,那个时候还是第二版,并且那个时候对于很多概念没有什么清楚的认识,读起来很快就给忘了。 时光荏苒,四年很快过去了,我已经从当时刚转专业的大二学生,变成了正在读 CS 的研一学生。最近突然发现,原来我对 Unix 系统以及网络的协议栈感兴趣。趁着现在还在上学,搞来了一本第三版打算系统学起来。经过这几年的沉淀,对于书中讲述的很多问题不再是比较陌生,或者是读完了没什... 大概四年前陆陆续续读过 APUE,那个时候还是第二版,并且那个时候对于很多概念没有什么清楚的认识,读起来很快就给忘了。 时光荏苒,四年很快过去了,我已经从当时刚转专业的大二学生,变成了正在读 CS 的研一学生。最近突然发现,原来我对 Unix 系统以及网络的协议栈感兴趣。趁着现在还在上学,搞来了一本第三版打算系统学起来。经过这几年的沉淀,对于书中讲述的很多问题不再是比较陌生,或者是读完了没什...
上滑加载中
推荐直播
-
2024华为开发者大赛广东赛区佛山站
2024/09/06 周五 14:30-17:00
华为云专家团
2024华为开发者大赛广东赛区佛山站直播上线,赛前为您讲解大赛玩法、分享赛题知识点,诚邀您一同参加!
回顾中 -
鸿蒙上云,加速开发者成长
2024/09/11 周三 16:30-18:00
芝诺 华为云HarmonyOS DTSE技术布道师
鸿蒙千帆起,越来越多的开发者启动鸿蒙原生应用开发,开发者创新中心提供全面的合作资源与支持服务,从了解、到学习评估、到开发上架以及技术支持,帮助不了解鸿蒙应用开发的伙伴快速转身、快速具备鸿蒙应用开发的能力。诚邀您加入鸿蒙生态,开启鸿蒙原生应用开发!
去报名
热门标签