- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统原理FAQ请解释发生进程上下文切换时,内核如何的工作答
操作系统原理FAQ
请解释发生进程上下文切换时,内核如何的工作?
答:
总的来说,操作系统必须保存当前进程的现场、恢复选中进程的现场。现场保存主要包括对CPU寄存器值的保存和已分配内存的保存。
上下文切换还包括与计算机体系结构相关的一些操作,如数据及指令高速缓存(cache)的刷新。
教材习题4.7中子进程里面开始的那段代码是什么意思?看不懂,能否帮忙解答一下?
由图4.11给出的程序使用了Pthread的应用程序编程接口(API),在程序的第c行和第p行分别会输出什么?
#include pthread.h
#include stdio.h
?
int value=0;
void?runner(void *param); /* the thread */行
?
int main(int argc, char *argv[])
{
int pid;
pthread_t tid;
pthread_attr_t attr;
?
牋?pid = fork();at
牋?pi
牋?if (pid == 0)爗/* child process */rea
牋牋?pthread_attr_init(attr);ces
牋牋?pthread_create(tid, attr, runner, NULL);p行分
牋牋?pthread_join(tid, NULL);tr,
牋牋?printf(揅HILD: value = %d? value); /* LINE C*/别会输出什
牋?}pr
牋?else if (pid 0) {/* parent process */IN
牋牋牋牋?wait(NULL); 0) {
牋牋牋牋?printf(揚ARENT: value = %d? values */INE); /* LINE P */
??? }
}
?
void *runner(void *param) {
???? value=10;
???? pthread_exit(0);
}
如果调用的fork返回0,调用子进程runner,Line C输出10;否则父进程直接在Line P输出0
用户级线程和核心级线程的主要区别在哪里?两者在什么情况下各有优劣?
答:
用户级线程直接由应用程序管理,操作系统核心感知不到它的存在,而核心级线程直接由操作系统管理。
用户级线程由线程库(thread library)来调度,而核心级线程由操作系统调度。
核心级线程不需要绑定到一个特定的进程,而用户级线程只属于某个特定的进程。
陷入(trap)和中断有什么区别?它们各有什么用途?
答:
中断是硬件产生的,中断处理程序会被调用来处理中断,然后控制权又根据上下文交还给中断前的程序指令。而陷入是一种软中断。中断用来发信号通知I/O操作的完成以消除循环检测,陷入则被用来唤醒操作系统例程或者捕捉算法错误。
老师能帮忙分析一下下面两个关于文件索引的题目吗?自已理解有些难度哦!
(20)设文件索引节点中有7个地址项,其中4 个地址项为直接地址索引,2个地址项是一级间接地址索引,1 个地址项是二级间接地址索引,每个地址项大小为4 字节。若磁盘索引块和磁盘数据块大小均为 256字节,则可表示的单个文件的最大长度是(? )。
A 33KB??
B 519KB
C 1057KB
D 16513KB?
(35)在 UNIX 系统中,文件的物理结构采用直接、一级、二级和三级间接索引技术,其索引结点有 13 个地址(i_addr[0]—i_addr[12]),如果每个盘块,大小为 1K 字节,每个盘块号占 4个字节,那么一个进程要访问文件,第356168字节处的数据时(? )寻址。
A? 可直接?
B? 需要一次间接
C? 需要二次间接
D? 需要三次间接??
块大小为256B,地址项大小为4B,所以每级索引可以存放64个地址,2级间接索引可以存放1*64*64*256B=1024kb,1级间接索引存放2*64*256=32KB,相加即得1056KB+直接索引4*256,刚好1057KB。
同理块大小1kb/4个字节=256个地址,一级索引为1*256*1024=262144+直接10*1024=264192356168,则必须到二级间接索引里面去寻址。
请说明为什么自旋锁不适合于单处理机系统而在多处理机系统中是有用的?
答:
当一个进程欲访问已被其他进程锁定的资源时,进程循环检测该锁是否被释放,这种技术称为自旋锁(spin lock)。施加自旋锁意味着进程一直占用CPU。在单处理机系统中,如果进程循环等待其他进程释放锁,因为系统只有一个CPU,拥有锁的进程无法得到CPU而释放该锁,因此,该进程应该阻塞,而不是循环等待。而在多处理机系统中,循环等待被其他进程施加的锁是可行
文档评论(0)