网站首页 > 技术教程 正文
1、进程与线程的区别
进程就好比工厂的车间,它代表CPU所能处理的单个任务。
一个车间里,可以有很多工人。他们协同完成一个任务。
线程就好比车间里的工人。一个进程可以包括多个线程。
车间的资源是工人们共享的。这象征一个进程的内存空间是共享的,每个线程都可以使用这些共享内存。(包括已经打开的文件也是共享的)(file descriptors are shared between the threads)
进程是资源分配最小单位,线程是程序执行/CPU调度的最小单位
2、 操作系统中的堆栈都是干什么的
这个问题不准确,面试官的意图是,不是让我们回答数据结构中堆和栈。
堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。 即动态分配内存,对其访问和对一般内存的访问没有区别。
堆是指程序运行时申请的动态内存。比如new和malloc就是在堆上
栈存放了每个函数返回地址、调用参数,局部变量等
3、操作系统中的物理内存与虚拟内存
物理内存就是你的机器本身内存了(如内存条的大小)
一个进程运行时都会得到4G的虚拟内存。这个虚拟内存你可以认为,每个进程都认为自己拥有4G的空间,这只是每个进程认为的,但是实际上,在虚拟内存对应的物理内存上,可能只对应的一点点的物理内存,实际用了多少内存,就会对应多少物理内存。
进程得到的这4G虚拟内存,给进程看到的是连续的地址空间(这也只是进程认为),而实际上,它通常是被分隔成多个物理内存碎片,还有一部分存储在硬盘上,在需要时进行数据交换。
当物理内存用完时,它将页面中的内容分页到磁盘上
一次打开了很多应用程序,或者浏览器打开了数百个选项卡,或者使用的应用程序将非常大的文件(例如Photoshop文件)加载到内存中,长期不用的存不下的内存会放到硬盘(虚拟内存里)
虚拟内存有两个作用:解决物理内存不足+将碎片化的内存空间映射成进程眼中连续的虚拟内存空间。通过OS来做这个转换。
4、信号量是干什么的
回到第一问的比喻,同一个工厂(进程里)不同工人(线程)共享一些资源(比如房间)
可是,每间房间的大小不同,有些房间最多只能容纳一个人,比如厕所。里面有人的时候,其他人就不能进去了。这代表一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。
一个防止他人进入的简单方法,就是门口加一把锁。先到的人锁上门,后到的人看到上锁,就在门口排队,等锁打开再进去。这就叫"互斥锁"(Mutual exclusion,缩写 Mutex),防止多个线程同时读写某一块内存区域。
还有些房间,可以同时容纳n个人,比如厨房。也就是说,如果人数大于n,多出来的人只能在外面等着。这好比某些内存区域,只能供给固定数目的线程使用。
这时的解决方法,就是在门口挂n把钥匙。进去的人就取一把钥匙,出来时再把钥匙挂回原处。后到的人发现钥匙架空了,就知道必须在门口排队等着了。这种做法叫做"信号量"(Semaphore),用来保证多个线程不会互相冲突。
不难看出,mutex是semaphore的一种特殊情况(n=1时)。也就是说,完全可以用后者替代前者。但是,因为mutex较为简单,且效率高,所以在必须保证资源独占的情况下,还是采用这种设计。
5、计网五层中每层都有哪些物理硬件
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层
数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层)
网络层:路由器、三层交换机
传输层:四层交换机、也有工作在四层的路由器
6、TCP与UDP的区别
在 TCP/IP 协议族中,有两个互不相同的传输协议: TCP(传输控制协议)和 UDP(用户数据报协议)。
UDP 是一个简单的面向数据报的传输层协议:
进程的每个输出操作都正好产生一个 UDP 数据报,并组装成一份待发送的 IP 数据报。
UDP 不提供可靠性:它把应用程序传给 IP 层的数据发送出去,但是并不保证它们能到达目的地。
传输层主要为两台主机上的应用程序提供端到端的通信。
TCP 为两台主机提供高可靠性的数据通信。
它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,
确认接收到的分组,设置发送最后确认分组的超时时钟等。
由于传输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。
而另一方面, UDP 则为应用层提供一种非常简单的服务。
它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。
任何必需的可靠性必须由应用层(比如视频网站APP自研一个协议,通过UDP来发送,UDP不保证可靠性,应用层自己完成校验重发)来提供。
TCP 与 UDP 的区别
1. TCP 是面向连接的协议,UDP 是无连接协议
TCP 发送数据前使用三次握手建立连接,UDP 发送数据前不需要建立连接。
2. TCP 可靠,UDP 不可靠
TCP 丢包会自动重传,UDP 不会(任何必需的可靠性必须由应用层来提供)。 TCP 可靠性由三个机制保证:1. 序号(TCP 报文的序号)2. 确认(ACK 机制)3. 重传(超时或者冗余的 ACK)
3. TCP 有序,UDP 无序
消息在传输过程中可能会乱序,后发送的消息可能会先到达,TCP 会对其进行重新排序,UDP 不会。
4.TCP 无界,UDP 有界
TCP 通过字节流传输,UDP 中每一个包都是单独的。
5. TCP 有流量控制(拥塞控制),UDP 没有
TCP 协议的流量控制是基于滑窗协议实现的。 拥塞控制和流量控制不同,流量控制是点对点的通信量抑制,抑制发送端发送速率,使得接收端来得及接收。
6. TCP 传输慢,UDP 传输快;
因为 TCP 需要建立连接、保证可靠性和有序性,所以比较耗时。 这就是为什么视频流、广播电视、在线多媒体游戏等选择使用 UDP。
7. TCP 是重量级的,UDP 是轻量级的
TCP 要建立连接、保证可靠性和有序性,就会传输更多的信息,如 TCP 的包头比较大。
轻量级的意思是UDP自己做的事情少,也就是程序员自己写的应用要做的事情多
7、子网掩码的作用?给了一个IP地址跟子网掩码,求广播地址?广播地址是干什么的?
IP地址:4段十进制,共32位二进制,如:192.168.1.1 二进制就是:11000000|10101000|00000001|00000001
子网掩码可以看出有多少位是网络号,有多少位是主机号: 255.255.255.0 二进制是:11111111 11111111 11111111 00000000
网络号24位,即全是1 主机号8位,即全是0
129.168.1.1 /24 这个、24就是告诉我们网络号是24位,也就相当于告诉我们了子网掩码是:11111111 11111111 11111111 00000000即:255.255.255.0
172.16.10.33/27 中的/27也就是说子网掩码是255.255.255.224 即27个全1 ,11111111 11111111 11111111 11100000
根据IP地址和子网掩码求网络地址和广播地址:
一个主机的IP地址是202.112.14.137,掩码是255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址
1、根据子网掩码可以知道网络号有多少位,主机号有多少位!
255.255.255.224 转二进制:11111111 11111111 11111111 11100000
网络号有27位,主机号有5位
网络地址就是:把IP地址转成二进制和子网掩码进行与运算(逻辑乘法:0&0=0;0&1=0;1&0=0;1&1=1 )
11001010 01110000 00001110 10001001
IP地址&子网掩码
11001010 01110000 00001110 10001001
11111111 11111111 11111111 11100000
11001010 01110000 00001110 10000000
即:202.112.14.128
广播地址:网络地址的主机位有5位全部变成1 ,10011111 即255 即:202.112.14.159
主机数:2^5-2=30
猜你喜欢
- 2024-09-27 2007年上半年 网络工程师 上午试卷
- 2024-09-27 2020电网招聘计算机类考试前20天重点复习哪些知识点?
- 2024-09-27 0基础小白,PM学习知识,赶紧收藏
- 2024-09-27 20电网二批计算机类考前20天,重点复习哪些知识点?
- 2024-09-27 啊?排序字段的大小也会影响排序性能?面试官都惊了
- 2024-09-27 事件-情形-动作 | 剑雨Axure RP9系列「基础」
- 2024-09-27 Web端高效元件库——高端元件,匠心设计
- 2024-09-27 Axure RP 9 学习笔记 - 随机验证码
- 2024-09-27 一文掌握Python 中的迭代器 python里的迭代器
- 2024-09-27 天猫商城Axure高保真Web原型下载2014版
你 发表评论:
欢迎- 05-1613步震撼淘宝大促闪光裂纹破墙立体字PS制作教程
- 05-16AI教程 | 绘制扁平的萌萌哒图标
- 05-160基础学平面设计所需了解的基础常识汇总
- 05-16自学平面设计需要多长时间?十六年职业设计总监告诉你
- 05-16平面设计都要学习哪些内容?
- 05-16李涛PS教程 高手之路PS教程 合成教程 —制作一个小星球
- 05-16Illustrator实例教程:制作炫酷的漩涡效果
- 05-16Illustrator实例教程:利用混合工具制作一朵炫酷的花
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)