zoukankan      html  css  js  c++  java
  • 进程和线程的概念与区别

     进程和线程的概念。

    (1)进程是计算机中因运行程序的实体。

    进程是程序的真正运行,用户下达运行程序的命令后,就会产生进程。同一程序可产生   多个进程。

    进程有三种基本状态:运行状态、就绪状态、阻塞状态。

    (2)线程是程序执行流 的最小单位。一般由线程ID,当前指令指针,寄存器集合和堆栈组成。线程是进程的一个实体,是系统独立调度和分派的基本单位,线程和同它在一个进程下的线程共享内存(但每个线程有自己独立的栈,堆是所有线程共享的)。

     

    线程与进程的区别?

    (1)调度:在传统操作系统中,拥有资源和独立调度的基本单位都是进程。引入线程之后,线程是独立调度的基本单位,进程是拥有资源的基本单位。在同一进程中,线程的切换不会引起进程的切换,而不同进程中进行的线程切换,则会引起进程切换。

    (2)拥有资源:进程是拥有资源的基本单位,线程不会拥有资源,但线程可以共享其隶属于进程的共享资源。

    (3)并发性:进程可以并发执行,而且同一进程内的多个线程也可以并发执行,从而使操作系统具有良好的并发性,大大提高了系统吞吐量。

    (4)系统开销:创建和撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O设备。在进程切换时,涉及当前执行进程CPU环境的保存以及新调度的进程CPU环境的设置;而线程切换时,只需保存和设置少量的寄存器内容。同一进程内的多个线程共享进程的地址空间,因此这些线程之间的同步与通信比较容易实现。

    (5)地址空间和其他资源:进程的地址空间之间互相独立,同一进程的各个线程间共享进程的资源,某进程内的线程对于其他进程不可见。

    (6)通信方面:进程间通信需要借助操作系统,而线程间可以直接读/写进程数据段来进行通信。

    典型的调度算法包括:先来先服务(FIFS)、短作业优先算法(SJF)、

    优先级调度算法、高响应比优先调度算法、时间片轮转算法、多级反馈队列调度算法。

    死锁产生的原因和必要条件。

    原因: (1)系统资源的竞争。

           (2)进程推进顺序非法。

    必要条件:

           (1)互斥条件。

           (2)不剥夺条件。

           (3)请求和保持条件。

           (4)循环等待条件。

           银行家算法是著名的死锁避免算法。

    常用的置换算法有:最佳置换算法(OPT)、先进先出页面置换算法(FIFO)、最近最久未使用(LRU)置换算法。 

     

  • 相关阅读:
    Zabbix,Nagios,OneAPM Servers 安装部署大比拼
    Android 手把手带你玩转自己定义相机
    Sublime Text3 快捷键
    超具体Windows版本号编译执行React Native官方实例UIExplorer项目(多图慎入)
    poj 1664 放苹果(递推)
    在HyperLedger Fabric中启用CouchDB作为State Database
    HyperLedger Fabric 1.0的Transaction处理流程
    如何将Bitcoin比特币区块链数据导入关系数据库
    在Ubuntu中部署并测试Fabric 1.0 Beta
    在Ubuntu上快速搭建基于Beego的RESTful API
  • 原文地址:https://www.cnblogs.com/yuanqiangfei/p/11267631.html
Copyright © 2011-2022 走看看