操作系统 面试题(二)

news2025/2/27 5:49:46

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.coloradmin.cn/o/1087479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTTP 原理与CND原理

1 HTTP 原理 HTTP是一个无状态的协议。无状态是指客户机(Web浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端…

NSA 和 CISA 揭示十大网络安全错误配置

美国国家安全局 (NSA) 和网络安全与基础设施安全局 (CISA) 在5日公布了其红蓝团队在大型组织网络中发现的十大最常见的网络安全错误配置。 通报还详细介绍了威胁行为者使用哪些策略、技术和程序 (TTP) 来成功利用这些错误配置来实现各种目标,包括获取访问权限、横向…

内存空间扩充之进程覆盖技术,交换技术

1.覆盖技术 人们引入了覆盖技术,用来解决“程序大小超过物理内存总和”的问题。 一个固定区: 存放最活跃的程序段固定区中的程序段在运行过程中不会调入调出 若干覆盖区: 不可能同时被访问程序段可共享一个覆盖区覆盖区中的程序段在运行…

MySQL慢查询的原因与解决方案

一、前言 在数据库系统中,慢查询是一个常见的问题。特别是在MySQL中,由于其复杂的查询结构和大量的数据,慢查询可能会导致系统性能下降,甚至影响整个应用的运行。本文将详细介绍MySQL慢查询的原因,并提供一些有效的解…

基于springboot实现火车订票管理系统项目【项目源码+论文说明】计算机毕业设计

摘要 本论文主要论述了如何使用JAVA语言开发一个火车订票管理系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述火车订票管理系统的当前背景以及系统开发的…

免备案域名 DNS解析

1、注册购买域名地址(免备案) Name.com | Domain Names, Registration, Websites & Hosting 注意国家选中国区才可以使用支付宝,信息填写完之后创建账号,邮箱填写自己的邮箱 2、注册完登录账号进去找到Domain Name 搜索自动…

SOLIDWORKS® 2024 新功能 - 3D CAD

1、 先前版本的兼容性 • 利用您订阅的 SOLIDWORKS,可将您的 SOLIDWORKS 设计作品保存为旧版本,与使用旧版本 SOLIDWORKS 的供应商无缝协作。 • 可将零件、装配体和工程图保存为新版本前两年之内的SOLIDWORKS 版本。 优点: 即使其他用户正…

信息系统项目管理师第四版学习笔记——高级项目管理

项目集管理 项目集管理角色和职责 在项目集管理中涉及的相关角色主要包括:项目集发起人、项目集指导委员会、项目集经理、其他影响项目集的干系人。 项目集发起人和收益人是负责承诺将组织的资源应用于项目集,并致力于使项目集取得成功的人。 项目集…

Lego Studio打开solidworks零件/装配体 (sw另存obj文件)

solidworks 2020 Lego studio / part designer 截至2023-10-13🎂最新版 文章目录 操作步骤1) solidworks 开启 ScanTo3D 功能2) 零件 / 装配体 保存至stl格式文件3) 以SanTo3D网格文件方式打开stl4) 将打开的stl另存为…

港联证券:三季报亮相 盈利拐点来了?

10月12日,跟着黄山胶囊宣布深市2023年首份三季报,以及华辰装备宣布创业板首份三季报,第一批宣布三季报的A股公司增至5家。 Wind数据闪现,到10月12日记者发稿时,A股共有208家上市公司宣布了本年三季度成果预告&#xf…

基于 ACK Fluid 的混合云优化数据访问(五):自动化跨区域中心数据分发

作者:车漾 前文回顾: 本系列将介绍如何基于 ACK Fluid 支持和优化混合云的数据访问场景,相关文章请参考: -基于 ACK Fluid 的混合云优化数据访问(一):场景与架构 -基于 ACK Fluid 的混合云优…

用wpf替代winform 解决PLC数据量过大页面卡顿的问题

winform 由于不是数据驱动, 页面想刷新数据必须刷新控件, wpf则不用. 可以利用wpf 的数据绑定和IOC, 页面中的消息传递, itemscontrol 实现大量数据刷新, 上位机页面不卡顿 代码如下: <Windowx:Class"NavTest.Views.NewMainView"xmlns"http://schemas.micr…

Linu:【Kafka四】集群介绍与单机搭建

目录 环境简介 一、搭建kafka集群 1.1、复制出两个kafka的配置文件 1.2、修改配置文件中的如下属性 二、启动kafka集群 三、可校验kafka三个节点是否均启动成功 四、查看集团中主题的分区和副本 4.1、新建一个包含了分区和副本的主题 4.2、查看该主题的详细信息 五、…

EDI入门讲解——一篇文章告诉你EDI是什么

知行软件从2008年开始做EDI解决方案&#xff0c;多年来帮助国内企业建立起与交易伙伴的EDI连接&#xff0c;在国内市场已有较高的市场份额。 我们在国内有自己的研发、实施和运维团队。如果您在产品使用过程中有任何问题、有任何功能上的需求、或者在我们产品中发现了错误&…

Talk | SIGGRAPH‘23 Best Paper 秦颖思:分罗曼三维显示器—各点独立变焦显示技术

本期为TechBeat人工智能社区第537期线上Talk。 北京时间10月12日&#xff08;周四&#xff09;20:00&#xff0c;卡耐基梅隆大学博士生—秦颖思的Talk已准时在TechBeat人工智能社区开播&#xff01; 她与大家分享的主题是: “分罗曼三维显示器—各点独立变焦显示技术”&#xf…

C++入门1

C入门1 1.前言2.命名空间1.C语言对于命名空间方面的缺陷2.命名空间的语法特性1.域作用限定符2.命名空间的可嵌套性 3.声明与定义分离的命名空间4.命名空间的展开5.多个命名空间中命名冲突6.对于命名空间的推荐写法 3.iostream1.cout和endl2.cin 3.缺省参数1.缺省参数的形式2.缺…

从零开始学习调用百度地图网页API:二、初始化地图,鼠标交互创建信息窗口

目录 代码结构headbodyscript 调试 代码 <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><meta name"viewport" content"initial-scale1.0, user-scalable…

进阶JAVA篇- Math 类和 System 类和 Runtime 类的常用API(三)

目录 API 1.0 Math 类的说明 1.1 Math 类中的 abs() 方法 1.2 Math 类中的 ceil () 方法 1.3 Math 类中的 floor () 方法 1.4 Math 类中的 round () 方法 1.5 Math 类中的 max() 和 min() 方法 1.6 Math 类中的 pow(double a , double b) 方法 1.7 Math 类中的 random&a…

案例|美创科技守护健康“一盘棋”,医共体整体数据安全建设实践

以医共体之“通”&#xff0c;破解看病之“痛”。在县域组建医疗共同体&#xff0c;逐步实现区域内医疗资源共享&#xff0c;推动形成基层首诊、双向转诊、急慢分治、上下联动的分级诊疗模式&#xff0c;是实现“首诊在基层、大病不出县”&#xff0c;更好地为全县人民群众服务…

生产环境中常用Linux命令

太简单的我就不讲解啦,浪费时间,直接将生产中常用的 文章目录 1.总纲2.整机 top3.CPU vmstat3. 内存 free4. 硬盘: df5. 磁盘IO iostat6. 网络IO ifstat7: 内存过高的情景排查 1.总纲 整机:topcpu:vmstat内存:free硬盘:df磁盘io: iostat网络io:ifstat 2.整机 top 首先们要查…