一.作业
1. 使用文件IO完成,将源文件中的所有内容进行加密(大写转小写、小写转大写)后写入目标文件中,源文件内容不变
#include <myhead.h>
//定义转换大小写函数
void zhuanhuan(char*buf)
{
for (int i = 0; buf[i]!='\0'; i++)
{
if (buf[i]>=97&&buf[i]<=122)
{
buf[i]-=32;//转换成小写
}
else if (buf[i]>=65&&buf[i]<=90)
{
buf[i]+=32;//转换成大写
}
}
}
int main(int argc, char const *argv[])
{
if (argc!=3)
{
printf("input file error!!!\n");
printf("usage:./a.out filename\n");
return -1;
}
int fd1=0;//源文件
int fd2=0;//目标文件
if (-1==(fd1=open(argv[1],O_RDONLY))||-1==(fd2=open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0664)))
{
printf("加密失败\n");
return -1;
}
char buf1[1]="";//定义容器存储
while (1)
{
int res=read(fd1,buf1,sizeof(buf1));//先从fd1读取数据
if (res==0)//如果读取数据个数为0则停止循环
{
break;
}
zhuanhuan(buf1);//调用转换大小写函数
write(fd2,buf1,res);
}
//关闭文件
close(fd1);
close(fd2);
printf("加密成功\n");
return 0;
}
2.查资料了解以下概念:
1.并发和并行的区别
相同点:
并发和并行的目标都是最大化CPU的使用率,将cpu的性能充分压榨出来。
不同点:
(1)并行在多处理器系统中存在,而并发可以在单处理器和多处理器系统中都存在
(2)并行要求程序能够同时执行多个操作,而并发只是要求程序“看着像是”同时执行多个操作,其实是交替执行。
2.什么是进程
狭义定义:进程就是一段程序的执行过程。
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元
3.进程和程序的区别
(1)程序是永存的;进程是暂时存在的。即进程是有生命周期的,创建,执行,撤销等。
(2)程序是静态的观念,进程是动态的观念;、
(3)进程和程序不是一一对应的: 一个程序可对应多个进程; 一个进程可以执行一个程序或多个程序
(4)进程具有并发性,而程序没有;
(5)进程是竞争计算机资源的基本单位,程序不是
4.进程的状态有哪些
(1)运行状态:进程正在处理器上上运行。在单处理器环境下,每个时刻最多只有一个进程处于运行状态。
(2) 就绪状态:进程已处于准备运行状态,即进程获得了除了处理器之外的一切所需资源,一旦得到处理器即可运行。
(3)阻塞状态:又称为等待状态,进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理器)或等待输入/输出完成。即使处理器空闲,该进程也不能运行。
(4)创建状态:进程正在被创建,尚未到就绪状态。
(5)终止状态:进程正在从系统中消失。可能是进程正常结束或其他原因中断退出运行
5.系统中的多个进程的调度机制都有哪些
1 先来先服务算法
2 时间片轮转算法
3 短任务优先算法
4 优先级调度算法
5 混合调度算法