作业
1> 使用文件IO完成,将源文件中的所有内容进行加密(大写转小写、小写转大写)后写入目标文件中
源文件内容不变
#include<myhead.h>
void ZH(char buf[]) //定义函数将传进来的字符串中的大小写字母转换
{
for(int i=0;i<strlen(buf);i++)
{
if(buf[i]>='A' && buf[i]<='Z')
{
buf[i] +=32;
}
else if(buf[i]>='a' && buf[i]<='z')
{
buf[i] -=32;
}
}
}
int main(int argc, const char *argv[])
{
if(argc != 3) //判断文件是否为2
{
return -1;
}
int sfd = open(argv[1],O_RDONLY); //打开文件1
int dfd = open(argv[2],O_WRONLY); //打开文件2
char buf[128] = "";
while(1) //循环
{
int n = read(sfd,buf,sizeof(buf)); //从文件1中去出元素放入buf中
if(n == 0)
{
break;
}
ZH(buf); //调用函数
write(dfd,buf,n); //将更改后的buf写入文件2
}
return 0;
}
2> 查资料了解以下概念:
并发和并行的区别
并发是指一个处理器同时处理多个任务。
并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。
什么是进程
进程就是一段程序的执行过程。
进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
进程和程序的区别
程序是静态的,而进程是动态的。
程序是永久的,而进程是暂时存在的。
进程是程序的一次执行,而进程总是对应至少一个特定的程序。
一个程序可以对应多个进程,同一个程序可以在不同的数据集合上运行,因而构成若干个不同的进程。
进程具有并发性,而程序没有。
进程的状态有哪些
创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态
就绪状态:进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行
执行状态:进程处于就绪状态被调度后,进程进入执行状态
阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用
终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行
系统中的多个进程的调度机制都有哪些
先到先服务调度(FCFS)
短作业优先调度(SJF)
时间片轮转调度(Round Robin)
多级反馈队列调度(MLFQ)