Tencent GameAI First Interview
腾讯游戏AI研发一面
简历被捞了一把,而且刚好我本人在深圳,所以面试官让去现场进行面试。一面是初试,所以更多地是聊天问询的方式检查各方面基础。
OS
1. 什么是操作系统?操作系统的功能?
操作系统
(OS)就是一个大型程序,主要用于控制和管理计算机硬件和软件资源,合理地组织计算机工作流程,以及与用户进行交互。其主要功能有:
- 进程管理:进程的控制、通信、调度等。
- 内存管理:内存的分配、地址映射、保护共享、虚拟内存等。
- 文件管理:文件存储空间的管理、目录管理、读写管理等。
- 设备管理:处理用户的 IO 操作,管理各种设备。
###2. OS的特征
- 并发:OS 的
并发
指的是宏观上在一段时间内能同时运行多个程序;并行
指的是同一时刻能运行多个操作指令。操作系统通过引入进程和线程使得程序能够并发运行。 - 共享:指的是系统中的资源可以被多个并发进程共同使用。共享的方式有两种:
互斥共享
和同时共享
。其中互斥共享
的资源会成为临界资源,即在同一时间只允许一个进程访问,需要用同步机制来保证对临界资源的访问。 - 虚拟:把一个物理实体转换为多个逻辑实体。主要的虚拟技术有两种:
时分复用技术
和空分复用技术
。例如,多个进程能够在同一个处理器上并发执行则是采用了时分复用技术
,让每个进程轮流占有处理器(因为 CPU 每次只能执行一个程序),每次只执行一小个时间片并快速切换;虚拟内存则采用了空分复用技术
,即将物理内存抽象为地址空间,每个进程都有自己 的地址空间。地址空间和物理内存使用页
(page)进行交换。 - 异步:指的是进程并不是一次执行完毕,而是走走停停,以不可知的速度向前推进。
3. 进程?线程?以及他们的区别?
进程
是对运行时程序的封装,是操作系统进行资源调度和分配的基本单位,用于实现操作系统的并发;线程
是进程的子任务,是 CPU 调度和分配的基本单位,用于保证程序的实时性,是进程内部的并发;进程
有自己独立的内存单元,而多个线程
共享进程的内存单元。- 一个程序至少有一个
进程
,一个进程
至少有一个线程
。进程
包含了线程
。
4. 进程和程序的区别:
程序
是一套指令的集合,是静态的(代码)。进程
则是程序的 instance,是一次执行过程,是动态的(执行过程)。程序
是实物,是永久存在的。进程
则有生命周期,因创建而产生,因调度而运行,因撤销而死亡。
3. 什么是死锁,以及死锁产生的条件。
在两个以上的并发进程中,如果某个进程持有某种资源而又等待其他进程释放它们现在持有着的资源,在未改变这种状态之前谁都不能向前推进,则这一组进程产生了死锁。简单地说,就是两个或多个进程无限期的阻塞,相互等待的一种状态。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 gzrjzcx@qq.com
文章标题:Tencent GameAI First Interview
文章字数:928
本文作者:Alex Zou
发布时间:2019-11-16, 12:57:35
最后更新:2024-07-10, 03:02:36
原始链接:https://www.hellscript.cc/2019/11/16/subposts_interview/Tencent-GameAI-First-Interview/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。