操作系统 面试题(二)

PART1

1.乐观锁和悲观锁的区别是什么?

2.乐观锁和悲观锁的实现方式分别有哪些?

3.平均周转时间如何计算?

4.银行家算法是什么?

5.IO多路复用是什么?

6.HTTP的头部包含哪些内容?

7.TCP如何保持连接?

8.如何让UDP协议变得可靠?

9.多进程和多线程之间的区别?

10. HTTP中get和post的区别

PART2

1.乐观锁和悲观锁的区别是什么?

乐观锁认为每次访问共享数据时,其他线程不会修改该共享数据,所以不加锁,只在更新该共享数据时,检查该共享数据在此期间是否被修改。适用于写较少的情况。

悲观锁认为每次访问共享数据时,其他线程会修改共享数据,所以加锁 ,独占共享数据,直到使用完毕才释放锁。适用于写较多的情况。

2.乐观锁和悲观锁的实现方式分别有哪些?

乐观锁:

CAS算法:保留最初访问时共享数据的值,更新前,核对该数据是否与内存中数据相等,若相等,则修改。若不相等,则不修改。比较和替换是一个原子操作。这是一个自旋操作,即不停地重试。

版本号机制:更新数据前,核对版本号,版本号代表数据更新次数,若最初读取数据时的版本号和提交更新时的版本号一致,则修改数据,且版本号加一。否则,不修改。

悲观锁:

java中synchronized关键字,每次只允许一个线程访问synchronized修饰的函数或代码块,其他线程被阻塞。

数据库SQL语句后加for update,锁定该条数据,使得其他用户无法进行增删查改。

3.平均周转时间如何计算?

周转时间 = 作业完成时间 - 作业到达时间

平均周转时间 = 所有作业周转时间/作业数量

4.银行家算法是什么?

当一个进程申请资源时,先试探性地分配给它,然后通过安全性算法判断分配后的系统是否处于安全状态。若不处于,则不分配给该进程,该进程继续等待。

安全性算法:给申请资源的进程分配资源后,查看剩余可用的资源能否使某个进程执行完毕。若没有进程可以执行完毕,那么系统处于不安全状态。若有进程可以执行完毕,则收回该进程的资源,继续判断是否有进程可以执行完毕,直到所有进程都执行完毕,按照进程执行完毕的顺序,可以得到一个安全序列,使得系统处于安全状态,避免死锁。

5.IO多路复用是什么?

IO多路复用是一种同步的I/O模型,允许单个线程处理多个IO请求。通过一次系统调用,检查多个文件描述符。若有文件描述符就绪,就返回该文件描述符,否则阻塞调用进程,直到某个文件描述符就绪或者阻塞时长超出阈值。

6.HTTP的首部包含哪些内容?

HTTP的首部包含了请求行和报文头。

请求行中包括请求方法、URL和HTTP协议和版本。

报文头中包含多个字段(字段名:字段值)

例如Accept指定了可以接收的数据类型

Referer表明了该请求的来源是哪个网页(点击了Referer指明的这个网址来发起的请求)

详细见图:

7.TCP如何保持连接?

有两种方法:

1)在客户端和服务器端设置一个超时时间,在超时时间内如果没有发送数据,就发送一个心跳包来保持连接,同时也可也侦测连接是否异常断开。

2)设置TCP的 keep alive属性,设置方法心跳包的事件间隔。这样TCP会在底层定时发送心跳包,服务器端收到心跳包直接丢弃,这样就保持了长连接。

8.如何让UDP协议变得可靠?

UDP协议没有流控制,没有应答确认机制,不能解决丢包,重发,乱序等问题。

为了实现UDP协议的可靠性,我们可以从以下几点考虑:

1)重传机制:丢包需要进行重传,使用ACK或者NACK来进行应答确认。

2)重排机制:收到乱序数据,使用一个缓冲区来进行数据重拍

3)超时机制:长时间未收到对方回复,需要进行重试。

9.多进程和多线程之间的区别?

多进程多线程
数据共享、同步数据共享复制,需要进行进程间通信。数据分开存储,每个进程有自己独立的地址空间,同步简单。多个线程共享了进程的数据,共享简单,同步复杂。
内存、CPU占用内存多,进程间切换开销大,CPU利用率低占用内存少,切换简单,CPU利用率高
创建销毁创建销毁的开销大,速度慢创建销毁的开销小,速度块
可靠性进程间不会互相影响一个线程奔溃,会影响其他线程
编程调试编程调试简单编程调试复杂
分布式适合多核、多机分布式适合多核分布式

优先使用线程:

  • 频繁创建销毁
  • 大量计算
  • 强相关的任务

10. HTTP中get和post的区别

getpost
请求参数直接附在URL的后面,用户可以在浏览器地址栏看见请求参数放在请求体中
数据容量有限,因为请求参数是附在URL之后的请求体中的数据容量没有限制
浏览器会主动缓存get请求浏览器不会主动缓存post请求
只会发送一个TCP包会发送两个TCP包,先发送报文头,收到服务器的响应后,再发送报文体
进行回退和刷新不会产生任何影响进行回退和刷新会重新提交请求
可以收藏书签不可以收藏书签

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/133299.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

198、RabbitMQ 的核心概念 及 工作机制概述; Exchange 类型 及 该类型对应的路由规则;了解什么是JMS。

目录 JMS 讲解★ RabbitMQ的核心概念★ RabbitMQ工作机制★ Connection(连接) 与 Channel(通信信道)★ Exchange★ Exchange与Queue★ Exchange的类型(4种)及 该类型对应的路由规则 看RabbitMQ 之前&#x…

Linux系统下centos中在线添加硬盘后不重启在线扩容linux系统目录不重启系统

Centos7 在线添加硬盘不重启系统 CentOS 7在线添加新磁盘,无需重启 现有环境基本都是线下server以及线上虚拟机等,几乎都支持热插拔,热扩容,所以在线添加新磁盘就尤为重要,这样可以无需中断当前服务或进程也可对其进行添加硬盘操作。 1.添加硬盘: 虚拟机在线状态下对其进行添加…

如何使用CSS和JavaScript实施暗模式?

近年来,暗模式作为用户界面选项备受追捧。它提供了更暗的背景和更亮的文本,不仅可以减轻眼睛疲劳,还可以节省电池续航时间,尤其是在OLED屏幕上。 不妨了解如何结合使用CSS和JavaScript为网站和Web应用程序添加暗模式选项。 了解暗…

pytorch学习第三篇:梯度

下面介绍了在pytorch中如何进行梯度运算,并介绍了在运行梯度计算时遇到的问题,通过解决一个个问题,来深入理解梯度计算。 梯度计算 import torch x = torch.rand(3,4,requires_grad=True) b = torch.rand(4,3,requires_grad=True) print(x,b)y = x@bt = y.sum()求导数 t.…

2015架构案例(五十一)

第5题 【说明】某信息技术公司计划开发一套在线投票系统,用于为市场调研、信息调查和销售反馈等业务提供服务。该系统计划通过大量宣传和奖品鼓励的方式快速积累用户,当用户规模扩大到一定程度时,开始联系相关企业提供信息服务,并…

华为云云耀云服务器L实例评测 | 实例评测使用之硬件参数评测:华为云云耀云服务器下的 Linux 磁盘目录分析神器 ncdu

华为云云耀云服务器L实例评测 | 实例评测使用之硬件参数评测:华为云云耀云服务器下的 Linux 磁盘目录分析神器 ncdu 介绍华为云云耀云服务器 华为云云耀云服务器 (目前已经全新升级为 华为云云耀云服务器L实例) 华为云云耀云服务器…

Python3无法调用Sqlalchemy解决(mysqldb)

原因 在安装Sqlalchemy后运行程序报错 无法导入mysqldb,缺失模块 ImportError: No module named ‘MySQLdb’ 既然缺少 MySQLdb 这个模块,尝试按照正常的想法执行 pip install MySQLdbpip install mysql-python 应该能解决,但是却找不到…

Umi + React + Ant Design Pro + TS 项目搭建

新建项目目录 mkdir 【项目名称】在对应目录 D:\react\demo 中,安装 Umi 脚手架: yarn create umi接下来,安装将要用到的相关依赖 umijs/plugins: npm i umijs/plugins -Dumijs/plugins 是 Umi 的官方插件集,包含了…

第二证券:跨行转账为什么迟迟不到账?

现在,越来越多的人挑选使用跨行转账来结束日常资金生意。不过,有时候在进行跨行转账时,或许会出现迟迟不到账的状况。这种状况常常让人感到困惑和焦虑。所以,我们需求深入分析这个问题,找出原因,以便可以防…

ES相关面试问题整理

索引模板了解么 索引模板,一种复用机制,就像一些项目的开发框架如 Laravel 一样,省去了大量的重复,体力劳动。当新建一个 Elasticsearch 索引时,自动匹配模板,完成索引的基础部分搭建。 模板定义&#xf…

阿里云10M公网收费价格表(一年和1个月报价)

阿里云服务器10M带宽收费价格表,阿里云服务器上海地域10M带宽一年优惠价格5355元,10M带宽一个月525元,地域不同带宽价格不同,阿里云服务器网以华东1(上海)地域为例,5M及5M以下带宽按照23元一个月…

C++:多态

本文主要介绍c中多态的概念、多态的定义及实现、抽象类、多态的原理、单继承和多继承关系中的虚函数表。 目录 一、多态的概念 二、多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写 4.C11 override 和 final 5.重载、覆盖(重写)、隐藏(重定义)的对比 三、…