操作系统记录

进程、线程区别?

         进程是运行时程序的封装,时系统进行资源分配和调度的基本单位,而线程是进程的子任务,是CPU分配和调度的基本单元。

         一个进程可以有多个线程,但是一个线程只能属于一个进程

         进程的创建需要系统分配内存和CPU,文件句柄等资源,销毁时也需要进行相应的回收,所以进程的管理开销很大;线程的开销相对来说就很小

        进程中之间不会相互影响;而一个线程崩溃就会导致进程崩溃,从而影响同个进程里面的其他进程

        联系:进程和线程之间的关系,线程是存在进程的内部,一个进程中可以有多个线程每一个线程只能存在在一个进程中

linux理论上最多可以创建几个进程?一个进程创建多少个线程,和什么有关呢?

        32768,因为进程的pid使用pid_t表示,pid_t最大值是32768,所以理论上最多有32768个进程

        线程的话,进程最多可以创建的线程数是根据分配给调用栈的大小,以及操作系统(32位与64位)共同决定的,Linux32位下最多是300多个。

进程之间的通信方式有哪几种呢?

        进程之间通信的方式主要有六种:管道、信号量、消息队列、信号、共享内存、套接字

        

 

进程调度方法详细介绍

先来先服务(FCFS):

短作业进程优先:

最短剩余时间有限

高响应比优化调度:

时间片轮转:

多级反馈队列:

 

进程执行过程是什么样的?执行一个进程需要u哦哪些工作?

        进程的执行需要经过三大步骤:编译,链接和装入

·编译:将源代码编译成托干模块

·链接:将编译后的模块和所需要的库函数进行连接,链接包括三种形式:静态链接,装入时动态链接(将编译后的模块在链接时一边链接一边装入),运行时动态链接(在执行时才把需要的模块进行链接)

·装入:将模块装入内存运行:

        将程序装入内存时,通常使用分页技术,将内存分为固定大小的页,进程分为固定大小的块,加载将进程的快装入页中,并使用页表记录,减少外部碎片

        通常操作系统会使用虚拟内存的技术将磁盘作为内存的扩充

操作系统的内存管理说一下?

操作系统的内存管理包括物理内存管理和虚拟内存管理

·物理内存管理包括交换和覆盖、分页管理和段页式管理等;

·虚拟内存管理包括虚拟内存的概念,页面置换算法,页面分配策略等;

 

死锁产生的必要条件:

·互斥:一个资源每次只能被一个进程使用

·占有并请求:一个进程因请求资源而阻塞时,对已经获得的资源保持不放

·不可剥夺:进程已获得的资源,在未使用完之前,不能强行剥夺。

循环等待:若干进程之间形成一种头尾相接的循环等待资源关系。

产生死锁的主要原因是:

       ·系统资源分配不足

       ·进程运行推进的顺序不合适

       ·资源分配不当

死锁的恢复:

·重新启动:最简单的消除死锁的方法,但是代价大。也就是因为如梭采用重新启动来消除死锁的话,之前完成的工作全部被销毁,不仅仅包括死锁的全部进程,也包括未参与死锁的全部进程

·终止进程:终止参与思索地进程并回收他们所站的资源

        ·一次性全部终止

        ·逐步终止(优先级,代价函数)

·剥夺资源:剥夺死锁进程所占的部分或者全部资源

        ·逐步剥夺:一次剥夺死锁进程所占的一个或者一组资源,如果还未解除死锁,那么就进一步释放资源,直到解除死锁为止

        ·次剥夺:一次性剥夺死锁进程所占用的所有资源

·进程回退:让参与死锁的进程回退到以前没有发生死锁的某个点处,然后由该点继续执行,并希望在进程交叉执行时不再发生死锁,但是程序开销很大。

什么时饥饿?

·饥饿时系统资源分配策略不公引起的,当进程或线程无法访问他所需要的资源而不能继续执行时,就会产生饥饿现象。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值