金山部分笔试题

昨天下午今天西山居来湖大笔试,西山居主要是游戏的,感觉就只能招男生,但还是过去瞅了瞅,不过应该是被鄙视了,因为现在还没给通知说去面试,网上一般说下午笔试完一般晚上就会有通知,不过还是收获了不少东西,感觉自己基础太差了。记得的题目不多了

其中有个说死锁的,为什么会产生死锁,如何解决死锁(操作系统本科时没学过,一通狂蒙)

查了下说答案应该是这个样子的  (*^__^*) ……

死锁:多个进程在运行中由于竞争资源造成的一种僵局,如没有外力作业,他们将无法继续执行。

死锁原因:1、竞争资源(资源数目少)2、进程之间推进顺序非法  资源可分为可剥夺性资源和不可剥夺性资源,竞争不可剥夺性资源可能导致死锁,而竞争可剥夺性资源是不可能发生死锁的。

死锁的处理方法:1、死锁预防 2、死锁避免 3、死锁检测 4、死锁解除

死锁预防是采用限制条件破坏死锁发生必要条件的一个或多个,但该方法会导致系统效率降低,资源利用率降低。(四个必要条件:1、互斥条件 2、请求和保持条件 3、不剥夺条件 4、环路保持条件)

死锁避免则是在资源动态分配是采用算法加以限制,防止系统进入不安全状态。

死锁检测与死锁解除配套使用。

预防死锁是不能破坏“互斥条件”这一必要条件,因为这是由设备的物理特性决定的,其它三个必要条件均可破坏。

 

另外还考了个sizeof和strlen的区别、堆和栈的区别,c++的内容不少,相当的一个多!

最后三个编程大题只能算编出了一个半,不怎么会。第一个是编个算法实现将两个整型数据放入buffer中。

第二个是将100个苹果分给四个人,要求每一个苹果分给每个人的概率是相同的,也就是可以(100,0,0,0),还可以是(25,25,25,25)等等,写出分配算法。

第三个是写个资源分配器吧,(就是在客户端申请链接的时候服务器如何实现分配连接)大体意思就是在一个游戏系统中有N个连接可供客户端使用,每个连接使用个ID,现在客户端要申请个连接,有空闲连接的话服务器就分配,没有的话就返回0。连接在释放之前始终是被占用的。大体上记住的就这么些了^_^

线程和进程的区别、qq是哪一层的(大家可以讨论下啊,感觉应该是应用层的)、tcp和udp的区别、网络的五层结构以及每层中代表协议有哪些、堆和栈的区别等等吧  记不怎么清楚了(中兴通讯前一段时间的技术面面试题)

 

 

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值