英伟达2013年笔试题

失业网:www.shiyew.com 时间:2013-04-28 22:49来源:网络作者:秩名点击:

  1.给出下面常用的C变量的定义方式:

  An array of 10 pointers to integers:int* p[10]

  A pointer to an array of 10 integers int (*p)[10]

  An array of ten pointers to functions that take an integer argument and return an integer: int (*p[10])(int)

  2.Difference between semaphore and mutex;

  互斥体:互斥体用于线程间的互斥,一次只允许一个线程进入临界区,它不能保证访问的顺序,因此其是无序访问。互斥体只能有同一线程释放,互斥体是睡眠锁,一旦资源被占用,资源的申请者只能进入睡眠状态,所以互斥体只能用于进程上下文,而不能用于中断上下文。

  信号量:也称信号灯,进程/线程间同步用,保证对资源的顺序访问,一个进程(线程)完成了某一个动作就通过信号量告诉别的进程(线程),别的进程(线程)再进行某些动作,例如读者写者问题。信号量的释放可以由其他进程/线程释放.信号量为控制一个具有有限数量用户资源而设计,例如允许多个读者同时访问资源。同样信号量是睡眠锁不能用于中断上下文

  自旋锁:类似于互斥体,但其可以用在中断上下文,因为对于没有获得锁的线程会循环检测,不会睡眠,但其占用cpu资源大。

  信号量与互斥体的区别可以归结如下

  1. 互斥体用于线程的互斥,信号量用于进程/线程的同步。

  2. 互斥体必须由同一线程获得和释放对应使用,而信号量可以由一个线程释放,另一个线程得到

顶一下(0) 踩一下(0)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码: