UNIX文件系统PPT课件下载推荐.ppt

上传人:聆听****声音 文档编号:3567474 上传时间:2023-05-02 格式:PPT 页数:40 大小:288KB
下载 相关 举报
UNIX文件系统PPT课件下载推荐.ppt_第1页
第1页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第2页
第2页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第3页
第3页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第4页
第4页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第5页
第5页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第6页
第6页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第7页
第7页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第8页
第8页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第9页
第9页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第10页
第10页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第11页
第11页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第12页
第12页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第13页
第13页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第14页
第14页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第15页
第15页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第16页
第16页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第17页
第17页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第18页
第18页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第19页
第19页 / 共40页
UNIX文件系统PPT课件下载推荐.ppt_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

UNIX文件系统PPT课件下载推荐.ppt

《UNIX文件系统PPT课件下载推荐.ppt》由会员分享,可在线阅读,更多相关《UNIX文件系统PPT课件下载推荐.ppt(40页珍藏版)》请在冰点文库上搜索。

UNIX文件系统PPT课件下载推荐.ppt

用户i_gid;

组i_size;

大小i_atime;

访问时间i_mtime;

修改时间i_ctime;

建立时间,Unix文件系统,卷资源表(超级块),structfilsys文件卷总块数;

i节点表块数;

空闲块总数空闲块栈区;

空闲i节点总数;

空闲i节点数组指针;

修改,互斥标志等,Unix文件系统,磁盘结构,引导块超级块i节点区数据块,目录文件放在哪儿?

Unix文件系统,内存文件数据结构

(1),每个进程user中:

u_ofileN;

用户打开文件表u_cdir;

当前目录u_base;

内存地址u_count;

存取字节数系统调用u_offset;

文件指针,Unix文件系统,内存文件数据结构

(2),一个系统打开文件表filestructfilef_flag;

读写标志f_count;

共享该读写指针的进程数f_inode;

活动i节点号f_offset;

读写指针,Unix文件系统,内存文件数据结构(3),每个打开文件一个活动i节点structinodedinode;

磁盘i节点拷贝,去掉时间信息i_dev;

i节点所在设备号i_number;

磁盘i节点编号i_count;

file中共享i节点的个数i_flag;

i节点在内存是否被修改i_lastr;

最后一次读的磁盘块号,Unix文件系统,内存文件数据结构的关系,2,Unix文件系统,文件系统调用,建立文件:

creat删除文件:

unlink读文件:

read写文件:

write打开文件:

open关闭文件:

close文件指针定位:

lseek文件连结:

link设置文件权限:

chmod建立管道文件:

pipe复制文件fd:

dup,Unix文件系统,建立文件creat,fd=creat(filename,mode)=,-1失败u_ofile下标,申请一个i_node填写i_node修改目录文件打开文件,例:

intfd;

fd=creat(“file1”,0740);

Unix文件系统,打开文件open,fd=open(filename,mode)=,-1失败u_ofile下标,mode=,0-读1-写2-读写,进行权限检查若活动i节点存在:

i_count+;

否则:

找到磁盘i节点,拷贝到内存,设i_dev,i_number,i_count=1file中申请一项,f_flage=mode,f_count=1,f_inode=活动inode地址在进程u_ofile中找一个空元素(从下标0开始找),填写file项地址返回u_ofile下标例:

fd=open(“file1”,2);

Unix文件系统,open示意图,file1,u_ofile,file,i_node,u_ofilei,i_node,fd=?

f_flag=?

f_inode=?

f_count=?

f_offset=?

i_count=?

j,Unix文件系统,读文件read,read(fd,buf,count)=,-1失败0文件尾实际读字节数,例:

chars50;

fd=open(“file1”,0);

read(fd,s,20);

read(fd,buf,count)fp=fdf_flag与本次操作相符?

yu_base=buf;

u_count=count,u_offset=f_offsetdevicefile?

nlbn=u_offset/512;

on=u_offset%512;

n=min(512-on,u_count)dn=i_devbn=lbn-pbn,lbn=i_lastr+1?

nyreadbnreadbn,bn+1i_last=lbn,i_flag=1buffer(on,n)bufu_offset+=nu_base+=nu_count-=nfreebufferu_count=0?

ysetf_offsetreturn(readbytes),n,n,i_addr0devicedriver,y,ER,buffer?

Unix文件系统,写文件write,write(fd,buf,count)=,-1失败实际写字节数,例:

scanf(“%s”,s);

write(fd,s,20);

write(fd,buf,count)fp=fdf_flag与本次操作相符?

yu_base=buf,u_count=count,u_offset=f_offsetdevicefile?

n=min(512-on,u_count)dn=i_devbn=lbn-pbn,n=512?

nyreadbnallocbufferbufbufferu_offset+=nu_base+=nu_count-=nbufferfull?

diskwritei_size+=n,i_flag=1u_count=0?

ysetf_offsetreturn(writebytes),n,n,i_addr0devicedriver,y,ER,y,n,buffer,Unix文件系统,关闭文件close,close(fd)main()fd=open(file1,0);

read();

close(fd);

close(fd)f_count-,freeu_ofileentryf_count=0?

returnyi_count-,freefileentryi_count=0?

returnyi_flag=1?

yi_node=diskfreeactivei_nodereturn,n,n,n,Unix文件系统,文件定位lseek,lseek(fd,offset,where)0fileheadwhere=1current2filetail,lseek(fd,9,0),lseek(fd,5,1),f_offset=“where”+offset,offsetvalue=?

Unix文件系统,建立文件链结link,link(oldname,newname);

例:

link(fileo,filen);

目录文件,i_node,i_link,Unix文件系统,删除文件unlink,unlink(filename);

i_link-i_link=0?

yfreefiledatablockfreei_nodedeletedirectoryentryreturn,n,Unix文件系统,修改文件权限chmod,chmod(file,mode)例:

chmod(file1,0742);

i_mode=mode;

i_flag=1;

Unix文件系统,建立无名管道文件pipe,Pipe(intfd2)=,fd0=readu_ofile下标fd1=writeu_ofile下标,u_ofile,file,i_node,fd0,fd1,i_count=2;

使用i_addr09,Unix文件系统,关于pipe的要点,lseek()?

f_offset?

读、写指针放在i_node中共享管道文件?

同一进程对同一管道文件的读写问题管道的同步与互斥问题,ABCDEFG,pipe(),创建新进程时会引起管道文件的那些变化?

一个管道文件可以有几个读指针?

几个写指针?

管道例,子1,子2,管道,父,main()chars20;

inti,fd2;

pipe(fd);

if(fork()=0)for(i=1;

i=100;

i+)scanf(“%s”,s);

write(fd1,s,20);

exit(0);

else,if(fork()=0)for(i=1;

i=50;

for(;

)read(fd0,s,20);

printf(“”%sn”,s);

wait(0);

父,子1,子2,Unix文件系统,文件重定向

(1),dup(fd)=u_ofile的新下标。

复制用户打开文件表表项,fd,返回,u_ofile,file,返回值一定比fd大吗?

Unix文件系统,文件重定向

(2),当进程创建时:

系统自动打开三个文件,u_ofile,u_ofile0u_ofile1u_ofile2u_ofilei,stdin:

keyboardstdout:

screenstderr:

screen,$lsabcfd=open(“abc”,1);

close(stdout);

dup(fd);

abc,$sortfeli1?

X,Unix文件系统,shell程序的实现,接受输入,进行语法比较处理后台运行符处理管道,重定向建立进程,执行相应程序。

main().while

(1)putchar$);

read(stdin,buffer,number);

语法检查,分出commandandparameters;

if(fork()=0)if(输出/入重定向)fd=creat(newfile,mode);

/*fd=open(feli,mode);

close(stdout/in);

if(管道|)pipe(fds);

if(fork()=0);

/*第一个命令,close(ftdout);

dup(fds1);

close(fds1);

closefds0);

execlp(command1,);

close(ftdin);

dup(fds0);

if(非后台运行/*whileend,Unix文件系统,小结,UNIX文件分类(3类)UNIX文件目录结构UNIX文件逻辑结构(stream)UNIX文件物理结构(多重索引)UNIX文件存储器管理(空白块成组链结)UNIX文件系统调用(creat,open,read,write,lseek,chmod,close,pipe,dup,link,unlink.重要数据表,表项,作用(目录文件,i_node,filsys,file,u_ofile,etc),Unix文件系统,期末考试复习,考试时间:

1.18考试地点9901-9902:

电2519903-9904:

电2529905-9906:

电152考试要求成绩评定作业:

上机作业,linux代码分析答疑,Unix文件系统,全书复习,OS的定义,位置,类型及特点,功能,目的,硬件支持用户接口处理机管理(进程概念,PCB,状态,同步,通信,死锁等)存储器管理文件管理设备管理UNIXLINUX,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2