ZUCC OS实验复习指南(进程、线程、进程通信、消息队列、信号、信号量、共享内存、管道)

ZUCC OS复习指南os实验是上机pta,极少是操作系统原理的理论,基本上是实验手册复习策略是记住1.头文件2.函数3.进程、线程、进程间的通信(信号、共享内存、信号量、消息队列、管道)1. 进程的创建和管理(fork)头文件<sys/types.h>、<sys/wait.h>#include<stdio.h>#include<sys/types.h>//fork在这 #include<sys/wait.h>//wait在这
摘要由CSDN通过智能技术生成

ZUCC OS复习指南

(进程、线程、进程通信、消息队列、信号、信号量、共享内存、管道)

os实验是上机pta,极少是操作系统原理的理论,基本上是实验手册

复习策略是记住

1.头文件
2.函数
3.进程线程、进程间的通信(信号、共享内存、信号量、消息队列管道

一点点杂乱的知识(选择题易考)

1.错误:当同时需要用两个互斥信号量时,总是让它们以交错的顺序加锁,以避免死锁

2.由signal()注册的信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据

3.共享内存允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种进程间通信机制(下文也有提到,共享内存不需要拷贝)

4.Linux系统中的文件名区分大小写,windows不区分。

5.进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述符。

6…在Linux环境执行“gcc hello.c"将产生a.out文件

7.linux命令的一般格式是“命令【选项】【参数】”(选择题注意其中命令没有【】)

8.Makefile文件是用来告诉make命令如何编译和链接程序

9.用top命令动态显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等,该命令默认3s刷新一次。 ps命令 监视系统进程和资源使用情况 -aux显示所有包含其他使用者的进程 //kill向进程发送指定信息来结束进程(下文signal也会说)
//ctrl + c终止前台执行任务进程
//pstree命令将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程
//pwd显示当前目录路径名的命令

10.GCC编译器有许多选项,其中-o选项要求输出可执行文件名

11.Linux内核源代码中,/ipc目录包含了核心进程间的通信代码。 /ipc 核心进程间的通信代码 /arch 体系结构相关核心代码 /init 包含核心的初始化 /kernal 内核管理的核心代码 /lib
核心库代码 /dev 存放设备相关文件 /usr/src 源代码存放目录 /proc
内存映射,虚拟的目录 /bin 存放普通用户可执行的程序

12.linux内核发布网站 www.kernel.org

13…在创建Linux分区时,至少要创建的两个分区是 SWAP/根分区

14.uname可以查看内核版本

15.执行 chmod a-x myfile 命令后, myfile 文件所赋有的不可能的权限是rwxrw-r–
权限有 r --w --x 读–写--执行 +代表赋予 -代表收回(题中是-代表收回所有用户执行权限)
八进制 1 --2 --4
//文件属主u 同组用户g 其他用户o a表示三者
//例如chmod 777 即赋予所有用户所有权限

16.Linux有多种发行版本,如ubuntu、debian。但是其内核均道循GNU的GPL。

17.Linux操作系统内核使用的操作系统结构为单内核(宏内核)结构

18.在task_struct结构中,下面的volatile long state字段用来表示进程的状态

19.在Linux内核中,进程标识符PID为0的进程是空闲进程,要注意的是 fork()函数在子进程中返回值也是0

20.init进程/systemd进程的进程表示符为1,要注意的是kill不能杀死1号进程

21.system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程.

22.进程通过系统调用signal来指定进程对某个信号的处 理行为,但SIGKILL,SIGSTOP这两个信号不可被改变.

23.15SIGTERM 终止信号 //1 SIGHUP 挂起 //2 SIGINT 中断 //14 SIGALRM 闹钟

24.错误:共享内存提供了同步机制,在第一个进程结束对共享内存的写操作之前,会有自动机制可以阻止第二个进程开始对它进行读取

25.Linux的ipcs命令,用于显示POSIX的各种IPC机制的状态。但是,它不提供pipe的状态

26.每一个IPC都有唯一的IPC标识符,单消息队列和共享内存可以有相同的标识符 IPC_STAT IPC_SET IPC_RMID IPC_CREAT

27.进程对管道进行读操作和写操作都可能被阻塞

1. 进程的创建和管理(fork)

头文件<sys/types.h>、<sys/wait.h>

#include<stdio.h>
#include<sys/types.h>//fork在这 
#include<sys/wait.h>//wait在这 
int main()
{
   
	pid_t fork(void);
	/*创建一个新进程,返回两次,返回子进程的ID给父进程,
	返回0给子进程,错误返回负值,常考因printf的缓冲机制,
	不加换行符会导致输出异常*/
	
	pid_t getpid(void);
	/*获取当前进程ID*/
	
	pid_t getppid(void)</
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值