美文网首页linux
Linux内核学习010——进程管理(六)

Linux内核学习010——进程管理(六)

作者: 若梦儿 | 来源:发表于2019-02-05 20:06 被阅读27次

Linux内核学习010——进程管理(六)

线程

进程(process)是计算机中已经运行程序的实体,是系统进行资源分配的基本单位。每个进程都被操作系统分配了一定的资源,比如:内存、文件、信号量等。程序本身只是指令和数据的集合,进程才是程序的执行实体。在现代操作系统中,引入了线程的概念。线程(thread)是操作系统能够进行运算调度的最小单位,其被包含在进程之中,是进程中的实际运作单位。一个进程内可以由多个线程并发执行,进程可以视为线程的容器。线程才是操作系统调度和分派的基本单元,是程序执行流的最小单元。同属于一个进程的线程之间共享资源,比如:虚拟地址空间、文件描述符、信号量等。线程页有各自的调用栈,寄存器环境和线程本地存储。

Linux中线程的实现

Linux实现线程的机制非常特殊,其并没有线程的概念,而是将所有的线程都当作进程来实现。内核中并没有特别的调度算法或是数据结构表示线程,相反,线程被视为一个与其他进程共享某些资源的进程。某个线程都拥有各自的task_struct,因此其在内核中就是一个普通的进程(知识和其他的某些进程共享一些资源)。

MS Windos或者Sun Solaris等操作系统的实现与此差异很大,这些系统都在内核中提供了专门的支持线程的机制(通常叫做轻量级进程)。在这些系统中,相较于重量级进程,线程被抽象为一种耗费较少资源,运行迅速的执行单元。而对于Linux而言,线程是实现进程间共享资源的手段。

内核线程

内核需要在后台执行一些操作,这一任务是通过内核线程(独立运行在内核空间的标准进程)完成的。内核线程和普通进程讲的区别在于内核线程没有独立的地址空间,其只在内核空间中运行,但是可以被调度和抢占。

内核线程是直接由内核本身启动的进程。实际上,内核线程是将内核函数委托给独立的进程。内核线程和其他的进程并行执行,也被称为内核守护进程。

相关文章

  • Linux内核学习010——进程管理(六)

    Linux内核学习010——进程管理(六) 线程 进程(process)是计算机中已经运行程序的实体,是系统进行资...

  • Linux内核学习006——进程管理(二)

    Linux内核学习006——进程管理(二) 之前提到在Linux内核中把进程(process)叫做任务(task)...

  • Linux内核学习011——进程管理(七)

    Linux内核学习011——进程管理(七) 进程终结 当一个进程终结时,内核必须释放其所占有的资源,并通知其父进程...

  • 开题

    linux 内核 线程和进程管理

  • Linux内核学习013——进程调度(二)

    Linux内核学习013——进程调度(二) Linux的进程调度 早期版本(1~2.4)的Linux内核中,调度程...

  • 2.进程管理

    进程管理 进程是操作系统的基本概念,本节主要总结Linux内核如何管理进程:进程在内核中如何创建,消亡。 1.进程...

  • Linux内核学习007——进程管理(三)

    Linux内核学习007——进程管理(三) 进程状态 在进程描述符中,long类型的state描述了进程的当前状态...

  • 进程和计划任务详解(一)

    学习内容: 1、进程相关知识(用户空间、内核空间、进程创建、进程优先级、进程内存)2、Linux进程查看及管理工具...

  • CentOS启动流程

    一、Linux内核的组成 相关概念: Linux系统的组成部分:内核+根文件系统内核功能包括进程管理、内存管理、网...

  • CentOS系统启动流程你懂否

    一、Linux内核的组成 相关概念:Linux系统的组成部分:内核+根文件系统内核:进程管理、内存管理、网络协议栈...

网友评论

    本文标题:Linux内核学习010——进程管理(六)

    本文链接:https://www.haomeiwen.com/subject/uqivsqtx.html