- 博客(0)
- 资源 (3)
- 收藏
- 关注
操作系统相关的部分面试题
## 1. 进程和线程的区别?
* 调度:进程是资源管理的基本单位,线程是程序执行的基本单位。
* 切换:线程上下文切换比进程上下文切换要快得多。
* 拥有资源: 进程是拥有资源的一个独立单位,线程不拥有系统资源,但是可以访问隶属于进程的资源。
* 系统开销: 创建或撤销进程时,系统都要为之分配或回收系统资源,如内存空间,I/O设备等,OS所付出的开销显著大于在创建或撤销线程时的开销,进程切换的开销也远大于线程切换的开销。
## 2. 协程与线程的区别?
* 线程和进程都是同步机制,而协程是异步机制。
* 线程是抢占式,而协程是非抢占式的。需要用户释放使用权切换到其他协程,因此同一时间其实只有一个协程拥有运行权,相当于单线程的能力。
* 一个线程可以有多个协程,一个进程也可以有多个协程。
* 协程不被操作系统内核管理,而完全是由程序控制。线程是被分割的CPU资源,协程是组织好的代码流程,线程是协程的资源。但协程不会直接使用线程,协程直接利用的是执行器关联任意线程或线程池。
* 协程能保留上一次调用时的状态。
## 3. 并发和并行有什么区别?
并发就是在一段时间内,多个任务都
2023-05-30
计算机网络的简单概述,仅作参考
网络发展史
二战之后,美苏争霸,出于军事的目的,美国组建了一个神秘的部门 ARPA,这个部门接美国国防部的要求打算研制一种分散的指挥系统,这个系统会有很多节点,每当其中某些节点被摧毁后,其它节点仍能相互通信,这个项目于 1966 年完成,ARPA 将其命名为 ARPANET(阿帕网)。ARPANET 是最早的计算机网络之一,它就是互联网的前身。
ARPANET 是最早使用分组交换的计算机网络之一,通过包交换系统进行通信的数据会被格式化为带有目标机器地址的数据包,然后发送到网络上由下一台机器接收。
数据包一词是由 Donald Davies 在 1965 年创造的,用于描述通过网络在计算机之间传输的数据,数据包在计算机网络中的位置举足轻重,可以说数据包是互联网的主人公。
ARPANET 于1969 年正式启动。同样于 1969 年,加州大学洛杉矶分校(UCLA)的 Steve Crocker 发表了第一篇 RFC 论文,这被认为是互联网的开端。同年,第一台网络交换机实现了在 ARPANET 上的第一次数据传输,这标志着互联网的正式诞生。
1.批处理
最初的计算机是一个庞然大物,其体量不
2024-04-22
C语言实现万年历相关文件
输入1970年之后任意一年的年份,输出该年的年历。对话如下:
```
输入:
Please input the year whose calendear you want to know?
2004
输出:
|=====================The Calendar of Year 2004====================|
: 1 SUN MON TUE WED THU FRI SAT 7 SUN MON TUE WED THU FRI SAT :
: 1 2 3 1 2 3 :
: 4 5 6 7 8 9 10 4 5 6 7 8 9 10 :
: 11 12 13 14 15 16 17 11 12 13 14 15 16 17 :
: 18 19 20 21 22 23 24 18 19 20
2024-03-11
后端,面试,c++ ,找工作
## sizeof和strlen的区别
sizeof是一个操作符,strlen是库函数。
sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘0‘的字符串作参数。
编译器在编译时就计算出了sizeof的结果。而strlen函数必须在运行时才能计算出来。并且sizeof计算的是数据类型占内存的大小,而strlen计算的是字符串实际的长度。
*数组做sizeof的参数不退化,传递给strlen就退化为指针了。*
## C中的malloc和C++中的new有什么区别
malloc和new有以下不同:
(1)new、delete是操作符,可以重载,只能在C++中使用。
(2)malloc、free是函数,可以覆盖,C、C++中都可以使用。
(3)new可以调用对象的构造函数,对应的delete调用相应的析构函数。
(4)malloc仅仅分配内存,free仅仅回收内存,并不执行构造和析构函数
(5)new、delete返回的是某种数据类型指针,malloc、free返回的是void指针。
注意:malloc申请的内存空间要用free释放,而new
2023-06-23
关于服务器性能优化方法
## 什么是服务器并发处理能力?
一台服务器在单位时间里能处理的请求越多,服务器的能力越高,也就是服务器并发处理能力越强。
**服务器的本质工作就是,争取以最快的速度将内核缓冲区中的用户请求数据一个不剩地都拿出来,然后尽快处理,再将响应数据放到一块又能够与发送数据的缓冲区中,接着处理下一拨请求。**
## 什么方法衡量服务器的并发能力?
衡量服务器并发处理能力的方法有很多,以下是一些常见的方法:
1. TPS(Transactions Per Second):每秒事务数,即服务器每秒钟能够处理多少个请求。TPS是衡量服务器性能最常用的指标之一。
2. QPS(Queries Per Second):每秒查询数,与TPS类似,但更关注数据库查询的数量。
3. RPS(Requests Per Second):每秒请求数,是服务器最直接的衡量标准,它可以度量所有类型的请求,包括静态和动态内容。
4. 响应时间:服务器对请求做出响应的时间,通常使用平均值或中位数来衡量。
5. 吞吐量:服务器在一定时间内处理的请求数量,通常使用总请求数量除以总处理时间来计算。
6. 并发连接数:同时
2023-06-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人