1.进程
运行起来的可执行文件

2.线程
进程内部的一个部分,进程包含线程

3.操作系统是如何管理进程的?

1)先描述一个进程,此处的描述其实就是用C语言的结构体,操作系统中描述进程的结构体称为PCB(process control block)进程控制块
2)再组织若干进程,典型的实现就是使用双向链表把每个进程的PCB给串起来
创建进程:县创建出PCB,然后把PCB加到双向链表中
销毁进程:找到链表上的PCB并从链表中删除
查看任务管理器:遍历链表

4.PCB中的属性

pid:进程id,进程的身份标识 内存指针:指明了这个进程要执行的代码/指令在内存的哪里,以及整个进程执行中依赖的数据都在那里

文件描述符表:进程每次打开一个文件,就会在文件描述符表中增加一项。文件描述符表可以视为一个数组,里面的每个元素又是一个结构体对应一个文件的相关信息。

状态:状态描述了当前进程接下来该怎么调度 1)就绪状态:随时可以去CPU上执行 2)阻塞/睡眠状态:暂时不可以去CPU上执行

优先级:用于分配时间的先后和多少 记账信息:统计每个进程都分别执行了多久,执行哪些指令,排对等了多久。给进程调度提供指导依据的。

上下文:表示了上次进程被调度出CPU的时候,当前程序的执行状态。下次进程上CPU的时候就可以恢复之前的状态继续执行。
进程被调度出CPU之前,要先把CPU中的所有寄存器中的数据都保存到内存中(PCB的上下文字段中),相当于存档
下次进程再被调度上CPU的时候就可以从刚才的内存中恢复数据到寄存器中,相当于读档。

5.并发和并行

并行:微观上两个CPU核心同时执行两个任务的代码
并发:微观上一个CPU核心限制性任务1再执行任务2…只要切换足够快宏观上看起来就好像多任务在同时执行一样

6.进程调度

操作系统在考虑CPU资源如何给各个进程分配,内存资源是通过虚拟地址进行分配的,保障了进程的独立性。
通过虚拟地址空间将进程各自隔离开了,进程之间的通信是通过文件操作或者网络操作。

7.线程产生的原因

频繁的创建/销毁进程成本较高,频繁的调度进程成本也是很高的
解决问题的思路:
进程池,能解决上述问题提高效率,当消耗系统资源太多
使用线程实现并发编程,线程比进程更轻量,无论是创建、销毁和调度线程的成本都比进程低很多。

8.线程为什么比进程更轻量?

进程重量在于资源申请和释放,线程是包含在进程中的,一个进程中的多个线程共用同一份资源(同一份内存+文件)。因此创建进程的第一个线程由于要分配资源成本是相对较高的,后续这个进程创建其他线程就不需要分配资源了,因此成本也会低一点。

9.进程和线程的区别和联系

1)进程包含线程,一个进程里可以有一个或多个线程
2)进程和线程都是为了处理并发编程这样的场景,但是进程在频繁的创建和释放的时候效率低,相比之下线程更加轻量创建和释放效率更高。
3)操作系统创建进程要给进程分配资源,进程是操作系统分配资源的基本单位
操作系统创建的线程是要在CPU上调度执行,线程是操作系统调度执行的基本单位
4)进程具有独立性,每个进程有各自的虚拟空间,一个进程挂了不会影响到其他进程
同一个进程中的多个线程共用同一个内存空间,一个线程挂了可能会影响到其他线程,甚至导致整个进程崩溃

10.内存和外存的区别

1)内存的存储空间较小,外存的存储空间较大
2)内存的访问速度快,外存的访问速度慢
3)内存成本高,外存成本低
4)内存中数据断电后小时,外存数据断电后还在

操作系统进程线程区别、并发和并行、内存和外存相关推荐

  1. Java--多线程之并发,并行,进程,线程(一)

    Java--多线程之并发,并行,进程,线程(一)_MinggeQingchun的博客-CSDN博客 Java--多线程之终止/中断线程(二)_MinggeQingchun的博客-CSDN博客_java ...

  2. 多少并发量算高并发_如何理解:程序、进程、线程、并发、并行、高并发?

    作者:大宽宽 链接:http://tinyurl.com/wx5xxho 在这里你可以了解: 为啥大家说的进程的意思有出入? 为啥并发那么难理解? 为啥高并发不仅仅是"高"+&qu ...

  3. 【Java扫盲篇】今天用人话给你讲清楚:进程、线程、并发、并行、高并发?

    在这里你可以了解: 为啥大家说的进程的意思有出入? 为啥并发那么难理解? 为啥高并发不仅仅是 "高"+"并发" 的意思? 为啥这些概念到了现实当中就不一样了? ...

  4. 如何理解:程序、进程、线程、并发、并行、高并发?

    在这里你可以了解: 为啥大家说的进程的意思有出入? 为啥并发那么难理解? 为啥高并发不仅仅是"高"+"并发"的意思? 为啥这些概念到了现实当中就不一样了? 进程 ...

  5. Java多线程复习:1(进程和线程、并发和并行)

    进程和线程 进程 我们电脑中每一个运行着的程序都是一个进程,程序一旦运行就是进程. 进程可以视为程序的一个实例,大部分程序可以同时运行多个实例进程(如:浏览器.记事本.画图等),也有的程序只能启动一个 ...

  6. 进程、线程、并发和并行概念

    一.进程和线程 进程是一个运行起来的可执行程序.进程有三种状态: 就绪 进程获得了除了CPU外所有必要资源 运行 进程获得了所有资源,开始执行 阻塞 进程正在尚未满足要求,正在等待 线程是程序执行流的 ...

  7. linux操作系统中查找某个进程,在linux下查看有哪些操作系统进程正在使用某一个共享内存段...

    [root@abc log]# ipcs -m ------ Shared Memory Segments -------- key shmid owner perms bytes nattch st ...

  8. 在计算机中存储器是由内存和外存的区别,简述计算机的内存和外存有何区别与特点?内存是由哪几部分组成?有何特点?...

    简述计算机的内存和外存有何区别与特点?内存是由哪几部分组成?有何特点? 答案:4  信息版本:手机版 解决时间 2019-10-06 02:44 已解决 2019-10-05 13:10 简述计算机的 ...

  9. 操作系统进程线程程序

    1.程序是存储在磁盘上包含可执行机器指令和数据的静态实体. 进程是资源分配的基本单位,它是程序执行时的一个实例,即运行中的程序. 线程是进程的一个实体,是系统调度和分配的基本单位. 程序和进程的区别: ...

  10. 科个普:进程、线程、并发、并行

    一.进程 刘大胖打开电脑,想写点东西,于是打开WPS,突然又想和女朋友(反正我不信)聊聊天,就又打开了微信PC端,这时操作系统就会为这两个程序生成两个进程,如图: 二.线程 每个进程至少包含一个线程, ...

最新文章

  1. 测试Hadoop2.7.1
  2. jQuery基础 (一)—样式篇
  3. Hadoop官网的一个WordCount程序
  4. python怎么更新数据库_在Python的Django框架中更新数据库数据的方法
  5. SpringMVC之组合注解@GetMapping
  6. 基于Prometheus和Grafana打造业务监控看板
  7. 【objectMapper实体转换异常】 com.fasterxml.jackson.databind.exc.MismatchedInputException
  8. 【C#】CsvHelper 使用手册
  9. Unknown initial character set index ‘255‘ received from server.
  10. 02函数极限存在条件
  11. Sequence of methods in form and table in AX
  12. 一起谈.NET技术,基于CallContextInitializer的WCF扩展导致的严重问题
  13. Matlab 边界提取
  14. 01单片机——基础知识
  15. 标准差SD、相对标准偏差RSD学习和python实现
  16. 点网络计算机怎么出现蓝屏,电脑总是出现蓝屏该怎么解决
  17. Android X86更改屏幕分辨率
  18. 五阶最小二乘+迭代方法曲线拟合
  19. MCM/ICM(美国大学生数学建模竞赛)报名指南
  20. viewflip和viewpage

热门文章

  1. LR11录制脚本无法弹出IE窗口的解决方案
  2. SpringBoot之SpringData JPA的基本使用
  3. Jedis Connection Pool
  4. 通常我们将python语言程序保存在一个后缀_c 语言程序设计 沈显君课后答案
  5. win10创建新的计算机用户名和密码,win10电脑怎么新建用户?高手教你在win10新建用户的方法...
  6. People Counter - People Counting
  7. 将Ubuntu装入移动硬盘
  8. python - 例题分析:工时与工资
  9. 【转】中国只有俩导演,一个叫贾樟柯,一个叫姜文
  10. 用MATLAB对语音进行基频搬移,语音信号变声处理系.doc