操作系统基础知识

contents

面试基础知识巩固

进程和线程

进程与线程的典型例子:打开微信软件,属于一个进程启用;在微信中进行聊天、刷朋友圈等各种操作,这些操作就是线程
可以说"进程"包含"线程","线程"是"进程"的子集
    什么是进程?什么是线程?
    进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配基本单元,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程时线程的容器。程序是指令、数据及组织形式的描述,进程时程序的实体。
    线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
    简单总结

  • 进程指系统中正在运行的一个应用程序;程序一旦运行就是进程;进程是系统进行资源分配的基本单位。
  • 线程是系统分配处理器时间资源的基本单元,或者说它是进程之内独立执行的一个单元执行流,它是程序执行的最小单元。
  • 一个程序至少有一个进程,一个进程至少有一个线程,也可以由多个线程组成

    进程和线程的区别?

  • 进程时资源分配的最小单位
  • 线程是程序执行的最小单位,也是处理器调度的基本单位,但进程不是,二者均可并发执行
  • 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作的资源代价昂贵。而线程共享进程中的数据,使用相同的地址空间,因此,CPU切换一个线程的资源开销比进程要小很多,同时创建一个线程的开销也比进程小很多
  • 线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程间需要以IPC方式进行通信。多线程编程需要处理好同步和互斥的情况。多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也会跟着死掉,而一个进程死掉不会对另外一个进程造成影响,因为进程有自己独立的地址空间。
  • 进程切换时,资源开销大,效率低。所以涉及到频繁的切换时,使用线程要好于进程。同样如果要求同时进行并且共享某些资源的并发操作,只能用线程不能用进程。
  • 执行过程:每个独立的进程有一个程序运行的入口、顺序执行序列和程序入口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
  • 线程执行开销小,不利于资源的管理和保护,线程适合在SMP(多核机器)上运行。进程执行开销大,但是能够很好的进行资源管理和保护,可以跨及其迁移。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值