




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux 期末复习1.UNIX/Linux 系统中条件变量需要和什么机制配合 互斥锁。2. Linux 多线程编程中,触发 pthread_cond_wait 返回的条件pthread_cond_signal() 或 pthread_cond_broadcast() 唤醒,并且 互斥锁在解锁状态。3. 不同进程共享相同文件表项的情况 不同进程共享同一个文件表项(父子进程)4. 进程从 main() 函数开始执行,它的异常结束方式1.调用abort,产生SIGABRT信号 2. 接收到终止信号5. 在 UNIX/Linux 命令中实现标准输入重定向command input-file6. 文件
2、要取消该文件的文件所有者的执行权限, 同时增加该文件的同 组用户的写权限,可以使用的命令chmod u-x file; chmod g+w fileLinux 系统中的标准错误的文件描述符值 标准输入(Standard input )的文件描述符是0 ,标准输出(standardoutput )是 1 ,标准错误( standard error )是 28. 调用 fork 函数后该函数返回值为 0,1的意义 0 为子进程, 1 为父进程9. 进程间通信的共享内存机制XSI IPC10. 指定所等待子进程的 ID 又可以请求内核返回子进程使用的资源 情况汇总函数wait3,wait4类函数中哪
3、个可以通过环境变量 P ATH来指定路径SEEK CU的意义execlp12. 调用 lseek 函数时,设置第三个参数为将该文件的偏移量设置为距文件当前位置加offset 个字节;Linux 系统中每个文件有 9 个文件权限位,按照访问文件的用户身份不同可以将这些文件权限位分为三个域,分别是哪些域 文件所有者,同组用户,其他用户14.在UNIX/Linux系统中C程序内存空间布局包括哪些段栈,堆,非初始化数据段,初始化数据段,正文段Linux 系统为每个进程自动打开三个文件,是什么文件 标准输入、标准输出和标准错误文件IPC 机制包括哪些内容 信号量,消息队列,内存共享17. 在 UNIX/
4、Linux 系统中,为了在一个目录中创建一个新文件, 必须 对该目录具有什么权限 写入权限和执行权限18. 进程和线程有哪些区别以及 Linux 系统提供了哪些线程同步机制1. 线程是进程内的独立执行实体和调度单元。进程有独立的地址空间,线程没有;线程是处理器调度的基本单位,但进程不是;进程是 资源分配和拥有的单位, 线程只能和同一个进程内的线程共享进程的 资源.2. 互斥量,读写锁,条件变量19. 在 UNIX/Linux 系统中可以认为操作系统用了三张表来描述一个 打开的文件,哪三张表这三张表各自描述了文件的哪些属性它们之间 是如何联系起来的1. 文件描述符表,文件表,索引节点表2. 文件
5、描述符表:文件描述符标志,指向一个文件表项的指针。文件 表:文件状态标志,文件读写偏移量,指向该文件索引节点表项的指 针。索引节点表:文件属性,数据块位置,当前文件长度。3. 通过指针指向对应表项20. 在UNIX/Linux系统中/etc/shadow文件用来存储用户密码,所有用户都可以通过执行 Passwd命令(/usr/bin/passwd)修改自己的秘 密(修改/etc/shadow 文件),但非root的其他用户对/etc/shadow 文件没有读写权限。为什么所有用户都可以通过执行P asswd命令修改自己的密码(修改/etc/shadow 文件) 这是因为用户执行“ /usr/b
6、in/passwd ”命令时, /usr/bin/passwd文件设置了 setuid 位,在执行此程序( /usr/bin/passwd )时,该用 户所拥有的权限等同于文件 “/usr/bin/passwd ”的拥有者 root 的权 限,而 root 用户拥有对 /ect/passwd 文件写的权限,因此普通用户 可以通过 /usr/bin/passwd 来修改 /etc/shadow 文件的内容。21. 在UNIX系统下利用C语言编程,通过使用多线程和条件变量实现以下两个线程的同步工作: 线程 A 与线程 B 互斥地访问共享资源 count( 整形,全局变量,其初 值为 0)线程A判断
7、count的值是否大于0,如果大于0则执行count二count-1 操作,循环往复 线程 B 执行 count=count+1 操作,循环往复 在main函数中首先创建线程 A,再创建线程B #include #include #include pthread_mutex_t mutex = P THREAD_MUTEX_INITIALIZER;/*初始化互斥锁*/pthread_cond_t cond = PTHREAD_COND_INITIALIZER;/* 初始化条件 变量*/void *threadA(void *);void *threadB(void *);int count =
8、 0;int main(void)pthread_t A;创建进程pthread_t B;pthread_create(&A,NULL,threadA,(void *)NULL);/*A*/*)NULL); /* 创建进程pthread_create(&B,NULL,threadB,(voidB*/pthread_join(A, NULL);/*等待进程A结束*/pthread_join(B, NULL);/*等待进程B结束*/pthread_mutex_destroy(&mutex);pthread_cond_destroy(&cond);exit(0);void *threadA(void
9、 *junk)锁住互斥量 */while(1)pthread_mutex_lock(&mutex);/*if(count 0)count -= 1;pthread_cond_signal(&cond);/*条件改变,发送信号,通知解锁互斥量 */t_b 进程*/pthread_mutex_unlock(&mutex);/*printf(%dn, count);void *threadB(void *junk)while(1)pthread_mutex_lock(&mutex);解锁mutex,并等待count += 1;pthread_cond_wait(&cond,&mutex);/* co
10、nd 改变 */pthread_mutex_unlock(&mutex);22. 在Linux系统下利用C语言编程,实现一个程序,该程序功能类似于一个简单的 shell 程序,其具体要求为: 从标准输入读取输入的 命令名/ 可执行文件名(要求用户输入的命令名和和可执行文件名为 绝对路径, 可以不考虑参数传递) ,以回车作为命令 / 可执行文件名输 入的结束,然后创建子进程执行对应的命令 / 可执行文件,此时程序 本身不再进行任何操作直到当前命令 / 可执行文件执行结束为止;该 程序一次只执行一条命令 / 可执行文件,不需要考虑输入输出重定向 和管理,不需要考虑信号处理。#include #in
11、clude #include #include #include int main(int argc,char *argv)if(argc 2)printf(Usage: %s commandn,argv0);return 0;pid_t pid;int status;if(pid = fork()pw_name);grp = getgrgid(my_info-pw_gid);if (!grp)strcpy(groupname,-);elsestrcpy(groupname,grp-gr_name);strcat(username,t);strcat(username,groupname);s
12、trcpy(userinfo,username);return userinfo;char *getinfo(char *path)static char str1000;struct stat info;stat(path,&info);strcpy(str, );if (S_ISDIR)str0 = d;else if (S_ISCHR) str0 = c;else if (S_ISBLK) str0 = b; elsestr0 = -;if& S_IRUSR) str1 = r;if& S_IWUSR) str2 = w;if& S_IXUSR) ifififififstr3 = x;&
13、 S_IRGRP) str4 = r;& S_IWGRP) str5 = w;& S_IXGRP)str6 = x;& S_IROTH) str7 = r;& S_IWOTH) str8 = w;if & S_IXOTH) str9 = x;char tmp20;strcat(str, );sprintf(tmp,%ld,;strcat(str,tmp);strcat(str, );strcat(str,getuserinfo);strcat(str, );sprintf(tmp,%20ld,;strcat(str,tmp);strcat(str, );strcat(str,getformat
14、time);return str;int main(int argc,char *argv)DIR *dp ;struct dirent *dirp;int max_dir_length = sysconf(_PC_PATH_MAX);char dirmax_dir_length;if (argc != 2) char bufmax_dir_length;if(getcwd(buf,max_dir_length)strcpy(dir,buf);elseprint_error(Dir is too long or something error!);elsestrcpy(dir,argv1);if (dp = opendir(dir) = NULL) print_error(Read dir failed!);char tmp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大班消防安全教育公开课
- 护理学人文修养
- 多元课程助力学生全面发展
- 服务行业市场竞争及开拓
- 2025年中国洋甘菊敏疗肤水市场调查研究报告
- 2025年中国无顶蝴蝶架市场调查研究报告
- 2025年中国折叠躺床市场调查研究报告
- 2025年中国微网建筑护角市场调查研究报告
- 2025年中国复活节饰品市场调查研究报告
- 2025年中国吸酸胶管市场调查研究报告
- 医院培训课件:《产前准备-为顺产做准备》
- 《管理学原理》(课件)
- 长城汽车2025人才测评答案
- 幼儿园法制教育讲座
- 《中华人民共和国产品质量法》知识培训
- 技能人才评价命题技术规程
- 中职不等式的试题及答案
- 深信服aES产品技术白皮书-V1.5
- 浙江省金华义乌市稠州中学2024-2025学年九年级下学期3月独立作业英语试卷(原卷版+解析版)
- Unit+2+Expressing+yourself+PartB(课件)【知识精研】人教PEP版(2024)英语三年级下册
- 电子商务与电子政务的互补关系
评论
0/150
提交评论