美文网首页
进程与线程

进程与线程

作者: 属于ly | 来源:发表于2018-05-07 16:11 被阅读0次

1.进程和线程的区别

(1)进程是资源分配和调度的一个独立的单元,而线程是cpu调度的基本单元。

(2)一个进程可以有多个线程,这些线程共享整个进程的所有资源(包括寄存器,上下文,堆栈)。一个进程至少有一个线程。

(3)进程结束所有的线程都将被销毁,如果一个线程的结束并不会影响到其他的线程。

(4)我们在程序里执行功能都是有线程去完成的。

(5)线程执行中都要进过同步和互斥,因为他们同时在操作进程的整个资源。否则将容易引起崩溃等问题。

2.死锁产生的原因?

(1)相互等待资源产生的僵持状态

2、死锁?死锁产生的原因?死锁的必要条件?怎么处理死锁?

解析:(--)相互等待资源而产生的一种僵持状态,如果没有外力的干预将一直持续这个状态

          (--)系统资源不足、相互竞争资源、请求资源顺序不当

          (2)互斥、不可抢占、循环等待、请求与保持

(3)因为互斥是不可改变的,所以只能破坏其他三个条件中的一个来解除死锁,方法:剥夺资源、杀死其中一个线程

3、Windows内存管理方式:段存储、页存储、段页存储

解析:

4、进程的几种状态?

解析:(1)run(运行状态):正在运行的进程或在等待队列中对待的进程,等待的进程只要以得到cpu就可以运行

          (2)Sleep(可中断休眠状态):相当于阻塞或在等待的状态

          (3)D(不可中断休眠状态):在磁盘上的进程

          (4)T(停止状态):这中状态无法直观的看见,因为是进程停止后就释放了资源,所以不会留在linux中

(5)Z(僵尸状态):子进程先与父进程结束,但父进程没有调用wait或waitpid来回收子进程的资源,所以子进程就成了僵尸进程,如果父进程结束后任然没有回收子进程的资源,那么1号进程将回收

5、IPC通信方式?

解析:(1)管道(匿名管道(pipe亲缘关系的进程通信)、命名管道(mkfifo/mknod))

          (2)消息队列:是基于消息的、用无亲缘关系的进程间通信,主要函数:msgget、msgsend、msgrecv、msgctl

          (3)信号量:相当于一把互斥锁,通过p、v操作,主要函数:semget、semop、semctl

(4)共享内存:是进程间通信速度最快的,所以用经常是集合信号量或互斥锁来实现同步,shmget、shmat、shmdt、shmctl

6、什么是虚拟内存?

解析:是将进程部分装入内存中,从而能实现一个很大的程序能在一个比它小的内存中运行,它的主要实现是靠程序的换进换出来实现的,因为内存中0~3G是用户使用,3~4G才是内存使用,通过映射来实现来进行逻辑地址到物理地址的映射

7、虚拟地址、逻辑地址、线性地址、物理地址的区别?

解析: 分段机制把一个逻辑地址转换为线性地址;接着,分页机制把一个线性地址转换为物理地址。

(1)虚拟地址:虚拟内存映射出来的地址

(2)逻辑地址:程序的段加偏移量形成的,C/C++程序中取地址求出来的地址就是逻辑地址

(3)线性地址:是逻辑地址到物理地址的中间层,只有启动分页机制的时候才有线性地址,如果没有分页机制,那么线性地址就是物理地址

(4)物理地址:是内存中实实在在存在的硬件地址,

逻辑地址(启动分段)--》线性地址(启动分页)--》物理地址

相关文章

  • iOS_进程与线程(多进程与多线程)

    iOS_进程与线程(多进程与多线程)

  • Java 线程相关

    目录1.并行与并发2.进程与线程---- 2.1 进程---- 2.2 线程---- 2.3 进程与线程的区别--...

  • 并发编程之进程与线程

    并发编程之进程与线程 2.1 线程与进程 2.1.1 进程 2.1.2 线程 2.1.3 二者对比 2.2 并行与...

  • 进程与线程、线程池

    进程与线程的相关总结进程与线程的简单解释进程: 基本的资源分配资源线程: 最小调度单元 线程安全 线程安全是多线程...

  • 详解iOS面试:进程与线程

    进程与线程 进程 = 资源管理 + 线程, 进程是资源分配单位,线程是 CPU 调度单位 以前没有线程的时候,进程...

  • Python多线程与多进程

    内容简述: 线程与进程的相关概念1、程序,进程,线程,多进程,多线程2、线程的生命周期3、并行与并发,同步与异步4...

  • OpenMP笔记

    进程与线程 进程:进程是正在运行的程序实例线程:线程是进程中实际运作单位,一个进程可以并行多个线程 进程包含如下程...

  • java面试3

    1. 进程与线程的区别? 进程和线程的关系: 进程与线程的区别: 2.struts2和springMVC的区别? ...

  • 22.iOS底层学习之多线程原理

    本篇提纲:1、线程与进程2、多线程3、多线程相关面试题4、线程安全问题5、线程与runloop的关系 线程与进程 ...

  • GO学习笔记(18) - 并发编程(1) - 理解gorouti

    目录 进程、线程与协程 并发模模型介绍 GO并发编程介绍 进程、线程与协程 进程和线程 进程是程序在操作系统中的一...

网友评论

      本文标题:进程与线程

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