【复习】
库:可执行代码的二进制形式
静态库:编译时
动态库(共享库):运行时
便于复用
进程:
和程序的区别:
三段:数据段、正文段、堆栈段
分类:交互进程、批处理、守护进程
状态:运行态R、等待态、暂停态T、死亡态x、僵尸态Z
命令:ps -aux/-ef、top、kill、bg\fg
函数:fork、wait/waitpid、exit/_exit、execvpe
守护进程:1.fork 2.setsid 3.chdir 4.umask 5.close
昨天作业:2. 通过父子进程完成文件io对文件的拷贝cp,父进程从文件开始
到文件的一半开始拷贝,子进程从文件的一半到文件末尾。
fd_src = open源文件
fd_dest = open目的文件
size = lseek();
size=size/2;
pid = fork();
if(pid == 0)
{
lseek(fd_src, size);
lseek(fd_dest, size);
while(1)
{
read(fd_src);
write(fd_dest);
}
}else{
lseek(fd_src, size);
lseek(fd_dest, size);
while(1)
{
read(,,5);
write();
}
}
close();
【1】线程
1.概念:线程指的是共享相同地址空间的多个任务
2.特点:
1)由于进程的地址空间是私有的,因此在进程间上下文切换时,
系统开销比较大
2)为了提高系统的性能,许多操作系统规范里引入了轻量级进程
的概念,也被称为线程
3)在同一个进程中创建的线程共享该进程的地址空间
4)Linux里同样用task_struct来描述一个线程。线程和进程都参
与统一的调度
3.优点:
1)使用多线程的好处大大提高了任务切换的效率
2)多线程通信简单,可以通过全局变量
4.线程和进程的区别:
1)进程间相互独立,而同一个进程内的线程间共享进程内所有的
资