操作系统复习(updating)
操作系统复习(updating)
1、进程和线程的区别是什么?
1)调度:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位
2)拥有资源:不论是传统操作系统还是设有线程的操作系统,进程都是拥有资源的基本单位,而线程不拥有系统资源,但是线程可以访问其隶属的进程的系统资源。
3)并发性:在引入线程的操作系统中,不仅进程可以并发执行,线程也可以并发执行
4)系统开销:由于创建和撤销进程的时候,系统都要为之分配或回收资源,因此操作系统所付出的开销要远大于撤销或创建线程的开销
5)地址空间和其他资源:进程的而地址空间之间互相独立,同一进程的各线程间共享进程的资源,某进程内的线程对于其他进程不可见
6)通信方向:进程间通信需要进程同步和互斥手段的辅助,而线程之间可以直接读/写进程数据段(如全局变量)来通信。
2、什么是分段和分页内存管理?它们之间的区别和优缺点是什么?
3、物理内存和虚拟内存的区别是什么?
物理内存:当打开程序的时候,系统会将这些程序加载到内存上。
虚拟内存:虚拟的不是物理内存,而是代表物理内存形式存储的功能,物理内存的运行程序的功能是无法用虚拟内存来完成的。
物理内存和虚拟内存的关系:当运行程序过多的时候,物理内存不够用的时候,系统会将一部分硬盘空间当内存使用,这部分空间就是虚拟内存。
每个线程会获得4GB的空间(32位系统)
4、什么是协程?
5、进程间通信的方式有哪些?
- 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
- 命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
- 消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
- 共享存储SharedMemory:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。
- 信号量Semaphore:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
- 套接字Socket:套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
- 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
6、死锁产生的原因?如何解决死锁?有哪些死锁算法?
死锁的概念:所谓死锁,是指多个进程因竞争自愿而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。
在操作系统中,死锁出现是指:若干进程因竞争资源而无限等待其他进程释放已占有的资源
6.1、死锁产生的原因:
- 系统资源的竞争:注意,只有不可剥夺资源的竞争才可能产生死锁,对可剥夺资源的竞争是不会引起死锁的。
- 进程推进顺序非法:进程在运行过程中,请求和释放资源的顺序不当,也同样会导致死锁
- 死锁产生的必要条件:
- 互斥条件
- 不剥夺条件
- 请求并保持条件
- 循环等待条件
6.2、 如何解决死锁?
为使系统不发生死锁,必须设法破坏产生死锁的4个必要条件之一,或允许死锁产生,但是当死锁发生时能检测出死锁,并有能力实现恢复。
- 破坏互斥条件
- 破坏不剥夺条件
- 破坏请求并保持条件:采用预先静态分配法
- 破坏循环等待条件:顺序资源分配法,给系统中的资源编号,规定每个进程必须按照编号递增的顺序请求资源,同类资源一次申请完。
1)资源剥夺法:挂起某些死锁线程,并抢占它的资源,将这些资源分配给其他的死锁进程。但因防止被挂起的进程长时间得不到资源而处于资源匮乏的状态。
2)撤销进程法:强制撤销部分甚至全部死锁进程并剥夺这些进程的资源。撤销的原则可以按进程优先级和撤销进程代价的高低进行。
3)进程回退法:让一个或多个进程回退到足以回避死锁的地步,进程回退时资源释放资源而非被剥夺。
6.3、银行家算法、系统有序分配算法、死锁检测算法、资源分配图化简法。
银行家算法是著名的死锁避免算法:
进程运行之前先声明对各种资源的最大需求量,当进程在执行中继续申请资源的时候,先测试该进程已占用的资源数与本次申请的资源数之和是否超过该进程声明的最大需求量。若超过则拒绝分配资源,若未超过则再次测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按照当前的申请量分配资源,否则也要推迟分配。
7、用户态和核心态(区别、切换方式)
8、操作系统分配的进程空间是怎样的?线程能共享哪些?
操作系统复习(updating)的更多相关文章
- 我的操作系统复习——I/O控制和系统调用
上篇博客介绍了存储器管理的相关知识——我的操作系统复习——存储器管理,本篇讲设备管理中的I/O控制方式和操作系统中的系统调用. 一.I/O控制方式 I/O就是输入输出,I/O设备指的是输入输出设备和存 ...
- 操作系统复习——如何查看一个进程的详细信息,如何追踪一个进程的执行过程 ,如何在 Linux 系统下查看 CPU、内存、磁盘、IO、网卡情况?epoll和select区别?
1. 如何查看一个进程的详细信息,如何追踪一个进程的执行过程 通过pstree命令(根据pid)进行查询进程内部当前运行了多少线程:# pstree -p 19135(进程号) 使用top命令查看(可 ...
- 操作系统:进程管理和IO控制
一.进程管理 进程管理包括进程控制,进程调度,进程同步与通信,死锁控制四个内容. (一)进程控制 进程是操作系统中运行的基本单位,包括程序段,数据段和进程控制段.操作系统通过进程控制块(PCB)管理进 ...
- 如何拿到美团offer的
美团,我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会.10月23日,中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我 ...
- 字节跳动Android面试凉凉,挥泪整理面筋,你不看看吗?
想在金九银十找工作的现在可以开始准备了,这边给大家分享一下面试会遇到的问题. 找工作还是需要大家不要担心,由于我们干这一行的接触人本来就不多,难免看到面试官会紧张,主要是因为怕面试官问的答不上来,答不 ...
- 模板复习【updating】
马上就要noi了……可能滚粗已经稳了……但是还是要复习模板啊 LCT: bzoj2049 1A 7min # include <stdio.h> # include <string. ...
- 转载文章——从HelloWorld学习操作系统
转载地址:https://my.oschina.net/hosee/blog/673628?p=%7b%7bcurrentPage+1%7d%7d 本文就将系统性的串联起那些知识点,方便复习和回顾.本 ...
- 渣渣小本求职复习之路每天一博客系列——Unix&Linux入门(5)
前情回顾:昨天简单地介绍了一下如何使用vi编辑器,例如命令模式和插入模式的切换,以及一些简单命令的讲解. —————————————————————————直接就开始吧———————————————— ...
- MySQL数据库出现The server quit without updating PID file.
一.服务器环境 操作系统:CentOS-6.4 服务器环境:集成环境LNMP1.0 二.步骤重现 1.安装LNMP1.0,具体操作方法见这里,安装成功: 2.因个人需求,现将MySQL数据库存放在/d ...
- 操作系统也谈"算法"
前言: 近来在准备校招的笔试面试,复习到操作系统时感觉概念性的东西比较多,不过对于以下的几类算法还是有必要做个小小总结. [作业调度算法] 先来先服务(FCFS, First Come First S ...
随机推荐
- JavaEE Day00 Java Web课程介绍
1.什么是Java Web? 使用Java语言开发互联网项目,简单理解为使用Java语言开发网站 2.课程介绍:30天 1.数据库(5天,第一阶段) 2.静态网页前端(5天,第二阶段) 3.Web核心 ...
- java (String)强制转换与toString()方法
1. Object.toString()介绍 Object中是自带有toString()方法的,也就是说java中的所有类的对象都是可以转换为字符串的. 首先,先看看Object.toString() ...
- ChatGPT 会开源吗?
最近,我被一款叫做 ChatGPT 的人工智能(AI)聊天机器人,刷屏了.网上有人说它是搜索引擎杀手,还有人说它将取代程序员... 最后,我还是没扛住铺天盖地的赞美,跑去注册了个账号,抱着调侃&quo ...
- 云原生架构(二)环境搭建(Mac上安装Docker+Kubernetes+Istio一条龙)
一.背景 Istio 项目由 Google 和 IBM 的团队与 Lyft 的 Envoy 团队合作启动.它已经完全在 GitHub 上公开开发.目前已经是"Service Mesh服务网格 ...
- 玩 ChatGPT 的正确姿势「GitHub 热点速览 v.22.49」
火了一周的 ChatGPT,HG 不允许还有小伙伴不知道这个东西是什么?简单来说就是,你可以让它扮演任何事物,据说已经有人用它开始了颜色文学创作.因为它太火了,所以,本周特推在几十个带有"c ...
- 计算存储分离在京东云消息中间件JCQ上的应用
作者:田寄远 JCQ 全名 JD Cloud Message Queue,是京东云自研.具有 CloudNative 特性的分布式消息中间件. JCQ 设计初衷即为适应云特性的消息中间件:具有高可用. ...
- vulnhub靶场之HACKABLE: III
准备: 攻击机:虚拟机kali.本机win10. 靶机:Hackable: III,下载地址:https://download.vulnhub.com/hackable/hackable3.ova,下 ...
- JDBC的一些基础认识,写的不是特别完善,希望大家看的时候别太介意嘿嘿嘿
JDBC 1,概念和本质 Java DataBase Connectivity Java 数据库链接, Java语言操作数据库 JDBC的本质:是一套操作所有关系型数据库的规则(接口)而JDBC所有的 ...
- [OpenCV实战]47 基于OpenCV实现视觉显著性检测
人类具有一种视觉注意机制,即当面对一个场景时,会选择性地忽略不感兴趣的区域,聚焦于感兴趣的区域.这些感兴趣的区域称为显著性区域.视觉显著性检测(Visual Saliency Detection,VS ...
- P8340 [AHOI2022] 山河重整
\(20pts\) 给 \(O(2^n)\) 枚举,\(60pts\) 是 \(O(n^2)\),先看看怎么做.计数题无非容斥和 \(dp\),不妨从 \(dp\) 入手.多项式复杂度的做法意味着无法 ...