annex11_计算机系统_en(2011)
深入理解计算机系统第二版家庭作业答案

深入理解计算机系统第二版家庭作业第二章略int is_little_endian{int a= 1;return char&a;}x&0xFF|y&~0xFFunsigned replace_byte unsigned x,unsigned char b,int i{return x&~0xFF<<i<<3|b<<i<<3;}A.~xB.xC.~x>>sizeofint-1<<3D.x&0xFF注意,英文版中C是最低字节,D是最高字节;中文版恰好反过来了;这里是按中文版来做的;这里我感觉应该是英文版对的,int_shifts_are_arithmeticint int_shifts_are_arithmetic{int x=-1;return x>>1==-1;}对于sra,主要的工作是将xrsl的第w-k-1位扩展到前面的高位;这个可以利用取反加1来实现,不过这里的加1是加1<<w-k-1;如果x的第w-k-1位为0,取反加1后,前面位全为0,如果为1,取反加1后就全是1;最后再使用相应的掩码得到结果;对于srl,注意工作就是将前面的高位清0,即xsra&1<<w-k-1;额外注意k==0时,不能使用1<<w-k,于是改用2<<w-k-1;int sra int x,int k{int xsrl=unsignedx>>k;int w= sizeof int<<3;unsignedz= 1<<w-k-1;unsignedmask=z-1;unsignedright=mask&xsrl;unsignedleft=~mask&~z&xsrl+z;return left|right;}int srl unsignedx,int k{int xsra=int x>>k;int w= sizeof int8;unsignedz= 2<<w-k-1;return z-1&xsra;}int any_even_one unsignedx{return x&;}int even_ones unsignedx{x^=x>> 16;x^=x>> 8;x^=x>> 4;x^=x>> 2;x^=x>> 1;return x&1;}x的每个位进行异或,如果为0就说明是偶数个1,如果为1就是奇数个1;那么可以想到折半缩小规模;最后一句也可以是returnx^1&1int leftmost_one unsignedx{x|=x>>1;x|=x>>2;x|=x>>4;x|=x>>8;x|=x>>16;return x^x>>1;}位机器上没有定义移位32次;变为2<<31;C.定义a=1<<15;a<<=15;set_msb=a<<1;beyond_msb=a<<2;感觉中文版有点问题,注释和函数有点对应不上,于是用英文版的了;个人猜想应该是让x的最低n位变1;int lower_one_mask int n{return2<<n-1-1;}unsigned rotate_right unsignedx,int n{int w= sizeof unsigned8;return x>>n|x<<w-n-1<<1;}这一题是看x的值是否在-2^n-1到2^n-1-1之间;如果x满足这个条件,则其第n-1位就是符号位;如果该位为0,则前面的w-n位均为0,如果该位为1,则前面的w-n位均为1;所以本质是判断,x的高w-n+1位是否为0或者为-1;int fits_bits int x,int n{x>>=n-1;return x||~x;}A.得到的结果是unsigned,而并非扩展为signed的结果;B.使用int,将待抽取字节左移到最高字节,再右移到最低字节即可;int xbyte unsignedword,int bytenum{int ret=word<<3-bytenum<<3;return ret>>24;}是无符号整数,因此左边都会先转换为无符号整数,它肯定是大于等于0的;B.判断条件改为ifmaxbytes>0&&maxbytes>=sizeofval请先参考题;可知:t=a+b时,如果a,b异号或者存在0,则肯定不会溢出;如果a,b均大于等于0,则t<0就是正溢出,如果a,b均小于0,则t>=0就是负溢出;于是,可以利用三个变量来表示是正溢出,负溢出还是无溢出;int saturating_add int x,int y{int w= sizeof int<<3;int t=x+y;int ans=x+y;x>>=w-1;y>>=w-1;t>>=w-1;int pos_ovf=~x&~y&t;int neg_ovf=x&y&~t;int novf=~pos_ovf|neg_ovf;return pos_ovf&INT_MAX|novf&ans|neg_ovf&INT_MIN;}对于有符号整数相减,溢出的规则可以总结为:t=a-b;如果a,b同号,则肯定不会溢出;如果a>=0&&b<0,则只有当t<=0时才算溢出;如果a<0&&b>=0,则只有当t>=0时才算溢出;不过,上述t肯定不会等于0,因为当a,b不同号时:1a=b,因此a-b不会等于0;2a-b<=absa+absb<=absTMax+absTMin=2^w-1所以,a,b异号,t,b同号即可判定为溢出;int tsub_ovf int x,int y{int w= sizeof int<<3;int t=x-y;x>>=w-1;y>>=w-1;t>>=w-1;return x=y&&y==t;}顺便整理一下汇编中CF,OF的设定规则个人总结,如有不对之处,欢迎指正;t=a+b;CF:unsignedt<unsigneda进位标志OF:a<0==b<0&&t<0=a<0t=a-b;CF:a<0&&b>=0||a<0==b<0&&t<0退位标志OF:a<0=b<0&&b<0==t<0汇编中,无符号和有符号运算对条件码标志位的设定应该是相同的,但是对于无符号比较和有符号比较,其返回值是根据不同的标志位进行的;根据2-18,不难推导,x'y'_h=xy_h+xw-1y+yw-1x;unsigned unsigned_high_prod unsignedx,unsignedy{int w= sizeof int<<3;return signed_high_prod x,y+x>>w-1y+xy>>w-1;}当然,这里用了乘法,不属于整数位级编码规则,聪明的办法是使用int进行移位,并使用与运算;即intx>>w-1&y和inty>>w-1&x;注:不使用longlong来实现signed_high_prodintx,inty是一件比较复杂的工作,而且我不会只使用整数位级编码规则来实现,因为需要使用循环和条件判断;下面的代码是计算两个整数相乘得到的高位和低位;int uadd_ok unsignedx,unsignedy{return x+y>=x;}void signed_prod_result int x,int y,int&h,int&l{int w= sizeof int<<3;h= 0;l=y&1x:0;for int i=1;i<w;i++{ify>>i&1{h+=unsignedx>>w-i;if uadd_ok l,x<<ih++;l+=x<<i;}}h=h+x>>w-1y+y>>w-1x;}最后一步计算之前的h即为unsigned相乘得到的高位;sign_h=unsign_h-x>>w-1&y-y>>w-1&x;sign_h=unsign_h+x>>w-1y+y>>w-1x;=5:x<<2+x=9:x<<3+x=30:x<<5-x<<1=-56:x<<3-x<<6先计算x>>k,再考虑舍入;舍入的条件是x<0&&x的最后k位不为0;int divide_power2int x,int k{int ans=x>>k;int w= sizeof int<<3;ans+=x>>w-1&&x&1<<k-1;return ans;}这相当于计算x<<2+x>>3,当然,需要考虑x为负数时的舍入;先看上述表达式,假设x的位模式为bw-1,bw-2,...,b0,那么我们需要计算:bw-1,bw-2,bw-3,...,b0,0,0+bw-1,bw-2,...,b2,b1,b0最后需要右移3位;因此我们可以忽略下方的b1,b0;于是就计算x>>2+x,再右移一位即是所求答案;不过考虑到x>>2+x可能也会溢出,于是就计算x>>3+x>>1,这个显然是不会溢出的;再看看b0+b2会不会产生进位,如果产生进位,则再加一;最后考虑负数的舍入;负数向0舍入的条件是x<0&&x<<2+x的后三位不全为0;满足舍入条件的话,结果再加1;容易证明,加法后三位不全为0可以等价为x后三位不全为0;int mul5div8int x{int b0=x&1,b2=x>>2&1;int ans=x>>3+x>>1;int w= sizeof int<<3;ans += b0&b2;ans += x>>w-1&&x&7;return ans;}不懂题意,感觉就是;w-n0n:~1<<n-1w-n-m1n0m:1<<n-1<<m,当x=0,y=TMin时,x>y,而-y依然是Tmin,所以-x>-y;,补码的加减乘和顺序无关如果是右移,则可能不同;,当x=-1,y=1时,~x+~y=0xFFFFFFFE,而~x+y==0xFFFFFFFF;,无符号和有符号数的位级表示是相同的;,最后一个bit清0,对于偶数是不变的,对于奇数相当于-1,而TMin是偶数,因此该减法不存在溢出情况;所以左边总是<=x;A.令x为无穷序列表示的值,可以得到x2^k=Y+x;所以x=Y/2^k-1;B.a1/7,b9/15=3/5,c7/63=1/9浮点数的一个特点就是,如果大于0,则可以按unsigned位表示的大小排序;如果小于0则相反;注意都为0的情况即可;所以条件是:ux<<1==0&&uy<<1==0||sx&&sy||sx&&sy&&ux>=uy||sx&&sy&&ux<=uy;,5表示为101,因此位数M就是为,小数f为=;指数部分应该为E=2,所以其指数部分位表示为e=2^k-1-1+2=2^k-1+1;位表示三个部分分别是s-e-f,为0-10..01-0100..0;B.能被准确描述的最大奇数,那么其M=..1,故f部分全为1,E应该为n;当然,这个假设在2^k-1>=n的情况下才能成立;这时,s=0,e=n+2^k-1-1,f=11...1;值为2^n+1-1;没有特别明白转换成最接近的,然后又说向+inf舍入的含义;按理说,舍入到+inf就是向上舍入,而并不是找到最接近的;表格中是按最接近的进行舍入,并且如果超出范围则认为是inf;如果都按+inf进行舍入,那么第四行格式B将是000000001;,float只能精确表示最高位1和最低位的1的位数之差小于24的整数;所以当x==TMAX时,用float就无法精确表示,但double是可以精确表示所有32位整数的; ,当x+y越界时,左边不会越界,而右边会越界;,double可以精确表示所有正负2^53以内的所有整数;所以三个数相加可以精确表示;,double无法精确表示2^64以内所有的数,所以该表达式很有可能不会相等;虽然举例子会比较复杂,但可以考虑比较大的值;,0/为NaN,非0/为正负inf;同号inf相减为NaN,异号inf相减也为被减数的inf;float的k=8,n=23;bias=2^7-1=127;最小的正非规格化数为2^1-bias-n=2^-149;最小的规格化数为2^0-bias2=2^-126;最大的规格化数二的幂为2^2^8-2-bias=2^127;因此按各种情况把区间分为TMin,-148-149,-125-126,127128,TMax; float fpwr2int x{/Resultexponentandfraction/unsignedexp,frac;unsignedu;if x<-149{/exp= 0;frac= 0;}elseif x<-126{/Denormalizedresult/exp= 0;frac= 1<<x+149;}elseif x<128{/Normalizedresult./exp=x+127;frac= 0;}else{/+oo/exp= 255;frac= 0;}/Packexpandfracinto32bits/u=exp<<23|frac;/Returnasfloat/return u2f u;}的二进制数表示为:0它表示的二进制小数值为:B.根据,可知1/7的表示为001...,所以22/7为C.从第9位开始不同;为了方便测试,我写了几个公共函数; typedefunsignedfloat_bits;float u2f unsignedx{return float&x;}unsigned f2u float f{return unsigned&f;}bool is_float_equal float_bitsf1, float f2{return f2u f2==f1;}bool is_nan float_bitsfb{unsignedsign=fb>>31;unsignedexp=fb>>23&0xFF;unsignedfrac=fb&0x7FFFFF; return exp== 0xFF&&frac=0;}bool is_inf float_bitsfb{unsignedsign=fb>>31;unsignedexp=fb>>23&0xFF;unsignedfrac=fb&0x7FFFFF; return exp== 0xFF&&frac== 0;}int testFun在汇编中,没懂word_sum15:ret$4以及diff12:subl$4,%esp的意义何在;可能是为了清除那个result的返回地址;C.传递结构体参数就像正常的传值;结构体的每一个变量可以看做是单独的参数进行传入;D.返回结构体的通用策略:将返回变量的地址看做第一个参数传入函数;而不是在函数中分配栈空间给一个临时变量,因为eax确实存不下一个结构体,eax充当返回变量的指针的角色;B取四的倍数的上整数=8;8+4+B2取四的倍数的上整数=28;所以B的可选值为8和7;2AB取四的上整数为44,所以AB的可选值为21和22;所以A=3,B=7;我们用结构体A表示a_struct;首先,根据第11和12行,可以得到CNTsizeA=196;根据13行,知道ecx+4edx+8为ap->xap->idx的地址;ecx存储的是bp地址;ap的地址是bp+4+isizeA我们知道,ap->x0的地址是bp+4+isizeA+posx,posx为结构体A中x的偏移;那么ap->xap->idx的地址是bp+4+isizeA+posx+ 4ap->idx;所以4edx+8=4+isizeA+posx+4ap->idx;所以,不难猜测,posx=4,也就是说,在A中,首先是idx,再是x数组;那么,我们看ap->idx在哪里计算过;到第10行,edx的结果是7i+bp4+28i,bp4+28i是什么呢它很可能是bp中的ai的首地址;我们先这样猜测,于是sizeA=28,并且bp4+28i的值为ap->idx;另一方面:4edx=28i+4bp4+28i=isizeA+4ap->idx;所以,我们的猜想是正确的;因此,sizeA=28,里面包含了一个intidx和一个数组intx6;总共有多少个A呢 CNT=196/sizeA=7;A.:0:4:0:4B.总共需要8个字节;C.不难知道,赋值前后都应该是整数;edx就是参数up一个指针;最后结果是用eax-edx得到的,说明edx是整数,即up->___为整数,肯定是表示的;再看看之前的eax,eax是由eax所得,说明到第3行后,eax是个指针;它是由ecx得到的,说明ecx在第二行也是个指针;而ecx是通过up+4得到的,所以ecx是一个union指针next,即up->;到第三行,eax为ecx,且是一个指针,所以eax在第三行为intp,即up->>;所以,赋值符号后面的表达式就为up->>-up->再看看前面;最终赋值的地址是ecx+4,而ecx那时候是一个next指针,而next+4必须是一个int,也不难推测它是;因此前面就为up->>;结果如下:void proc unioneleup{up->>=up->>-up->;}版本一:使用getcharvoid good_echo{char c;int x= 0;whilex=getchar,x='\n'&&x=EOF{putchar x;}}版本二:使用fgetsvoid good_echo{const int BufferSize= 10;char sBufferSize;int i;while fgets s,BufferSize,stdin=NULL{for i=0;si;++iputchar si;if i<BufferSize-1break;}return;}两种方法对于EOF好像没效果,就是输入一定字符后不按回车直接按EOF,没能正确输出;网上查到的资料说,getchar在输入字符后,如果直接按EOF,并不能退出,只能导致新一轮的输入;需要在最开始输入的时候按,即按了回车之后按;而fgets就不知道了,不按回车,就不添加0;long trace tree_ptrtp{long ret= 0;while tp=NULL{ret=tp->val;tp=tp->left;}return ret;}作用是从根一直遍历左子树,找到第一个没有左子树的节点的值;long traverse tree_ptrtp{long v=MAX_LONG;if tp=NULL{v= mintraverse tp->left,traverse tp->right;发现加载/使用冒险的逻辑公式:E_icodein{IMRMOVL,IPOPL}&&E_dstMin{d_srcA,d_srcB}&&E_icode==IMRMOVL&&D_icode==IPUSHL;B.e_valA=E_icode==IPUSH&&M_dstM==E_srcA:m_valM;1:E_valA;;版本1,在预测正确的情况下执行7条指令,预测错误时执行9条指令并插入一个bubble;版本2,执行8条指令,但是在外部循环需要多执行3条指令,否则就需要多用一个寄存器;暂时没有想到好的办法;光从内循环看来,版本2平均执行次数比版本1要少,因为可以假设预测错误的概率是50%;深入理解计算机系统第二版家庭作业第五章A.关键路径是%xmm1更新路径上的加法;下界是浮点加法的延迟;C.两个load操作的吞吐量界限;我觉得是D.因为乘法不在关键路径上,乘法也是流水线执行的,其限制因素为吞吐量界限;整个程序的限制因素为最后的浮点数加法的延迟,这个延迟对float和double都是;书上之前说关键路径,现在其实可以再仔细分析一下以下属于个人分析:把执行指令写出了就明了了;以整数为例:相同底色表示这些指令在一个循环内执行,以及同一个循环内的初始值:所以我觉得整数的时候CPE是,可是为什么是呢void inner4vec_ptru,vec_ptrv,data_tdest{longint i;int length= vec_length u;data_tudata= get_vec_start u;data_tvdata= get_vec_start v;data_tsum=data_t0;int limit=length-2;for i= 0;i<limit;i++{sum=sum+udataivdatai;sum=sum+udatai+1vdatai+1;sum=sum+udatai+2vdatai+2;}for;i<length;++isum=sum+udataivdatai;dest=sum;}A.因为load吞吐量为,每计算一个值需要两次load,所以CPE不可能低于;B.关键路径上仍然有N个浮点加法,所以循环展开并没有改变执行单元的吞吐量可用寄存器实际只有6个,而三路展开需要i,limit,udata,vdata,以及存储udatai,vdatai的寄存器,所以肯定有些循环变量会溢出到寄存器,这会影响效率;至于为什么是以及为什么四路展开的整数会是,还不是很清楚;void inner4vec_ptru,vec_ptrv,data_tdest{longint i;int length= vec_length u;data_tudata= get_vec_start u;data_tvdata= get_vec_start v;data_tsum=data_t0;int limit=length-2;for i= 0;i<limit;i++{int x1=udataivdatai;int x2=udatai+1vdatai+1;int x3=udatai+2vdatai+2;sum=sum+x1+x2+x3;}for;i<length;++isum=sum+udataivdatai;dest=sum;}void optimized_memset void s,int c,size_tn{unsigned int K= sizeof unsigned long;unsigned char schar=unsigned char s;unsigned long lchar;unsigned long fill= 0;int i= 0;for i= 0;i<K;i++fill+=c&0xff<<i<<3;好情况是6个磁道都在一个柱面上,只需要寻一次道,而且文件是顺序存储;T=T_seek+T_maxrotate+6T_maxrotate=B.最差的情况3000T_seek+T_maxroate+T_transfer=16530ms高速缓存m C B E S t s b 132204844128237223220484512130023322048812562183432204881282281353220483216421656322048324162345高速缓存m C B E S t s b 13281921615121994232409644256228233240964812823724322048324162245感觉最后一行答案有错误,C应该是4096,或者t是23,或者E为2;行1行2组00x0120-0x0123-组10x08A4-0x08A70x0704-0x0707组2--组3-0x064C-0x064F组40x18F0-0x18F30x00B0-0x00B3组50x0E34-0x0E37-组60x1238-0x123B-组7-0x1BDC-0x1BDFb=2,s=2,t=12-b-s=8;A.11109876543210CT CT CT CT CT CT CT CT CI CI CO COB.操作地址命中读出的值读0x409No-写0x40A Yes-读0x833Yes0xD0=EBS=128字节=2,s=3,t=13-b-s=8;1211109876543210 CT CT CT CT CT CT CT CT CI CI CI CO CO1211109876543210 0011100011000 B.参数值块偏移CO0x00索引CI0x6标记CT0x38命中Yes返回值0xFA12111098765432101011011101100B.参数值块偏移CO0x00索引CI0x3标记CT0xB7命中No返回值-0x1314-0x13170x1794-0x1797对于写分配的高速缓存,每次写不命中时,需要读取数据到高速缓存中;该高速缓存只有2个组,对于相同的i,j,srcij和dstij对应相同的组; src0src2对应组0;src1src3对于组1;dst同src;dst数组列0列1列2列3行0m h m h行1m m h m行2m h m h行3m m h msrc数组列0列1列2列3行0m m m m行1m m m m行2m m m m行3m m m m缓存能完全容得下两个数组,所以只会出现冷不命中;dst数组列0列1列2列3行0m h h h行1m h h h行2m h h h行3m h h hsrc数组列0列1列2列3行0m h h h行1m h h h行2m h h h行3m h h hA.缓存为1024字节,数组大小为22564=2048,所以x0和x1的每一个元素x0i和x1i 对应的高速缓存是同一个块;因此,每次都在加载,驱逐;不命中率为100%;B.缓存足够大,只有冷不命中,不命中率为1/8=%;C.这种情况相当于是只有冷不命中,不命中率为%;D.不会降低,因为块大小不变时,冷不命中的概率不可能被减小;E.会降低,因为一个块的大小增加,冷不命中的频率就降低;写了个程序进行测试的;结果如下:函数N=64N=60sumAsumB1sumC程序清单:unsigned calc_address unsignedhead,int i,int j,int N{return head+iN4+j4;}unsigned calc_line unsigned add,int block_size,const int line{return add/block_size%line;}int isHit unsignedcache,unsignedr,unsigneda,int block_size{a=a/block_sizeblock_size;unsignedtmp=cacher;cacher=a;return tmp==a;}void testA int block_size,const int line,unsigned add, const int N{unsignedcacheline;memset cache,-1,sizeof cache;int hit= 0,miss= 0;for int i=0;i<N;++ifor int j=0;j<N;++j{unsignedaddress= calc_address add,i,j,N; unsignedr= calc_line address,block_size,line;hit+=isHit cache,r,address,block_size;}miss=NN-hit;cout<<"sumA"<<hit<<""<<miss<<endl;cout<<double miss/NN<<endl;}void testB int block_size,const int line,unsigned add, const int N{unsignedcacheline;memset cache,-1,sizeof cache;int hit= 0,miss= 0;for int j=0;j<N;++jfor int i=0;i<N;++i{unsignedaddress= calc_address add,i,j,N; unsignedr= calc_line address,block_size,line;hit+=isHit cache,r,address,block_size;}miss=NN-hit;cout<<"sumB"<<hit<<""<<miss<<endl;cout<<double miss/NN<<endl;}void testC int block_size,const int line,unsigned add, const int N{unsignedcacheline;memset cache,-1,sizeof cache;int hit= 0,miss= 0;for int j=0;j<N;j+=2for int i=0;i<N;i+=2{unsigneda,r;a= calc_address add,i,j,N;r= calc_line a,block_size,line;hit+=isHit cache,r,a,block_size;a= calc_address add,i+1,j,N;r= calc_line a,block_size,line;hit+=isHit cache,r,a,block_size;a= calc_address add,i,j+1,N;r= calc_line a,block_size,line;hit+=isHit cache,r,a,block_size;a= calc_address add,i+1,j+1,N;r= calc_line a,block_size,line;hit+=isHit cache,r,a,block_size;}miss=NN-hit;cout<<"sumC"<<hit<<""<<miss<<endl;cout<<double miss/NN<<endl;}void testHit{const unsignedstart_address= 0x08000000;const int cache_size= 41024;const int block_size= 16;int line=cache_size/block_size;int N= 64;cout<<N<<endl;testA block_size,line,start_address,N;testB block_size,line,start_address,N;testC block_size,line,start_address,N;cout<<"-----"<<endl;N= 60;cout<<N<<endl;testA block_size,line,start_address,N;testB block_size,line,start_address,N;testC block_size,line,start_address,N;}A.写总数为16164=1024BC.这种情况只有冷不命中,一个block能存下16个int,不命中率为1/16;不命中总数为64;A.写总数为16164=1024BC.E=1024/64=16,每4行才能容得下数组的一行,每次j在变化时,都会不断驱逐掉之前的缓存;所以,只有循环内是可以命中的;不命中率为1/4,不命中总数为256;汇编代码其实比较好理解;eax是val,最开始val-100和5比较,如果大于5,就直接到16行去+6;A.调用一次,返回两次:forkB.调用一次,从不返回:execve,longjmpC.调用一次,返回一次或者多次:setjmp4行8行->x=2->x=4->x=3满足这种拓扑即可;主进程只打印一行;主进程的直接子进程会打印一行,子进程的子进程又打印一行;所以是3行;这里的子进程不是exit,而是return,说明两个子进程都要到回到main函数去打印那里的hello;所以是5行;输出counter=2,因为全局变量也是复制的,而不是共享的;满足Hello--->1->Bye\\\--->0---->2-->Bye这种拓扑即可;A.虚拟地址0x03a9cpp viewplaincopyprintcpp viewplaincopyprint1.include <sys/>2.include <sys/>3.include <>4.include <>5.include <sys/>6.int main7.{8.int fd;9.char start;fd=open"",O_RDWR,0;始化的时候,序言块和结尾块是怎么样的;序言块八字节8|0x11;结尾块四字节0|0x11;2.为堆申请更多空间的时候sbrk,如何更改结尾块记录最后一个块的alloc;结尾块向后延伸申请的空间,并将刚多出的空间作为一个空闲块;设置为size|alloc<<1;再合并该空闲块;这里如何合并呢需要判断最后一块是否已分配,可通过epilogue来判断;3.某个空闲块匹配的时候,如何设置头和下一块的头;我们基于以下假设:某个空闲块匹配,上一个和下一个一定不是空闲块否则可以合并;所以头部就设置为asize|0x011;如果要分割,则下一块的头部设置为size-asize|0x010,不用合并,因为再下一块肯定是已经分配;4.释放某个块时,如何合并;检查头部,alloc_prev=上一块是否分配检查下一个块的头部,alloc_next=下一个块是否分配;再根据那四种情况分别设置;最后,如果下一块已分配,则需要将下一块头部设置为原头部&~0x010;另外,在mm_malloc中,分配多大的块也要发生相应的变化,因为现在最小块大小可以是DSIZE,而不是2DSIZE;以下是我的完整代码:代码并没有进行严格测试,如果有问题可以一起讨论;cpp viewplaincopyprint1.include <>2.include <>3.include <>4.defineMAX_HEAP1<<245./Privateglobalvariables/6.static char mem_heap;/Pointstofirstbyteofheap/7.static char mem_brk;/Pointstolastbyteofheapplus1/8.static char mem_max_addr;/Maxlegalheapaddrplus1/9./10.mem_init-Initializethememorysystemmodel11./12.voidmem_initvoid13.{14.mem_heap=char mallocMAX_HEAP;15.mem_brk=char mem_heap;16.mem_max_addr=char mem_heap+MAX_HEAP;17.}18./19.mem_sbrk-Simplemodelofthesbrkfunction.Extendstheheap20.byincrbytesandreturnsthestartaddressofthenewarea.In21.thismodel,theheapcannotbeshrunk.22./23.voidmem_sbrk int incr24.{25.char old_brk=mem_brk;26.ifincr<0||mem_brk+incr>mem_max_addr{27.errno=ENOMEM;28.fprintfstderr,"ERROR:mem_sbrkfailed.Ranoutofmemory...\n";29.returnvoid-1;30.}31.32.mem_brk+=incr;33.returnvoidold_brk;34.}35.voidmem_endvoid/addedbyzhanyu/36.{37.freemem_heap;38.}cpp viewplaincopyprint1.include <>2./Basicconstantsandmacros/3.defineWSIZE4/Wordandheader/footersizebytes/4.defineDSIZE8/Doublewordsizebytes/5.defineCHUNKSIZE1<<12/Extendheapbythisamountbytes/6.defineMAXx,yx>yx:y7./Packasizeandallocatedbitintoaword/8./9.ifsize<=DSIZEasize=DSIZE;10.elseasize=DSIZEsize+WSIZE+DSIZE-1/DSIZE;11./Searchthefreelistforafit/12.ifbp=find_fitasize=NULL{13.placebp,asize;14.returnbp;15.}16.17./Nofitfound.Getmorememoryandplacetheblock/18.extendsize=MAXasize,CHUNKSIZE;19.ifbp=extend_heapextendsize/WSIZE==NULLreturnNULL;20.placebp,asize;21.returnbp;22.}23.staticvoidplacevoidbp,size_t asize24.{25.size_t csize=GET_SIZEHDRPbp;26.size_t nsize=GET_SIZEHDRPNEXT_BLKPbp;27.int prev_alloc=GET_PREVALLOCHDRPbp;28.int next_alloc=GET_ALLOCHDRPNEXT_BLKPbp;29.ifcsize-asize>=2DSIZE{30.PUTHDRPbp,PACKasize,prev_alloc,1;31.PUTFTRPbp,PACKasize,prev_alloc,1;32.bp=NEXT_BLKPbp;33.PUTHDRPbp,PACKcsize-asize,1,0;34.PUTFTRPbp,PACKcsize-asize,1,0;35.}36.37.else{38.PUTHDRPbp,PACKcsize,prev_alloc,1;39.PUTHDRPNEXT_BLKPbp,PACKnsize,1,next_alloc;40.}41.42.}43.voidmm_end/addedbyzhanyu/44.{45.mem_end;46.}1a;对于伙伴系统,如果要申请大小为33的空间,那么需要分配64个空间;如果申请大小为65的空间,那么块大小就需要128,所以最多可能有约50%的空间被浪费;b中,最佳适配要搜索所有空间,所以肯定比首次适配要慢一些;c,边界标记主要功能是释放一个块时,能立即和前后空闲块合并;如果空闲块不按顺序排列的话,其实也能够和前一个或者后一个空闲块进行合并,但如果要和前后一起合并,可能会有些困难,那需要搜索前后块在空闲链表中的位置,并且删除一个再进行合并;可以参考P576,LIFO方法;d,其实任何分配器都可能有外部碎片,只要剩余的空闲块大小和足够但是单个都不够,就会产生外部碎片;2d;块大小递增,那么最佳适配法找到的块和首次适配找到的块是同一个,因为最佳适配总是想找一个刚好大于请求块大小的空闲块;a,块大小递减,首次适配很容易找到,所以分配性能会很高;b,最佳适配方法无论怎样,都要搜索所有的链表除非维护成块大小递增的链表;c,是匹配的最小的;3c;保守的意思就是所有可能被引用的堆都会被标记,int像指针,所以可能认为它表示的地址是正在被引用的实际上它只是个int;首先,没有什么头绪~除了写好分配器,还需要考虑存储器映射吧;真的写起来不是两三个小时就能搞定的,还可能要测试各种bug,最后性能测试也挺麻烦的;于是乎……写不出来了;深入理解计算机系统第二版家庭作业第十章输出fd2=4已经有012被打开,fd1是3,fd2是4,关闭fd2之后再打开,还是4;int main int argc,char argv{int n;rio_trio;char bufMAXBUF;Rio_readinitb&rio,STDIN_FILENO;while n= Rio_readnb&rio,buf,MAXBUF=0Rio_writen STDOUT_FILENO,buf,n;}只需要将stat那句话改为:fstatatoiargv1,&stat;当然,如果需要加其他处理的话比如判断参数对错,fd是否存在等等,还需要添加一些语句;这里应该是表明,输入重定向到了,然而3这个描述符是不存在的;说明并没有单独的描述符3;所以Shell执行的代码应该是这样的:if Fork==0{/Child/int fd= open"",O_RDONLY,0;dup2fd,1;close fd;Execve"fstatcheck",argv,envp;}这里使用一个重定向的技术即可;如果参数个数为2,那么就将标准输入重定向到文件;程序并没有检测各种错误;int main int argc,char argv{int n;rio_trio;char bufMAXLINE;if argc== 2{int fd= open argv2,O_RDONLY,0;dup2fd,STDIN_FILENO;close fd;}Rio_readinitb&rio,STDIN_FILENO;while n= Rio_readlineb&rio,buf,MAXLINE=0Rio_writen STDOUT_FILENO,buf,n;}深入理解计算机系统第二版家庭作业第十一章A.因为read_requesthdrs中已经打印出了请求报头,所以只要打印请求行即可;在doit函数中第一个sscanf语句之后添加下面的语句即可:printf"%s%s%s\n",method,uri,version;B.用火狐浏览器输出结果:另外,如果要存成文件的话,可能需要另存为的结果可以表明,浏览器使用HTTP/D.请求行和报头如下:GET/User-Agent:Mozilla/X11;Ubuntu;Linuxi686;rv:Firefox/Accept:text/html,application/xhtml+xml,application/xml;q=,/;q=Accept-Language:en-US,en;q=Accept-Encoding:gzip,deflateConnection:keep-aliveUser-Agent:系统以及浏览器情况Accept:可以接受的媒体;Accept-Encoding:可以接受的编码方案;Accept-Language:能够接受的语言;其实上述内容是百度得到的在get_filetype函数里面添加:elseif strstr filename,".mpg"||strstr filename,".mp4"strcpy filetype,"video/mpg";并没有想到很好的方法;因为结束子进程之前,我们不可以关闭已连接描述符;这就导致我们还是得让serve_dynamic或者是doit函数或者main函数中要等待子进程结束;迭代服务器的设计让这个问题变得比较无聊;在main函数之前加入代码:int chdEnded;include<>void child_signal int sig{pid_tpid;while pid= waitpid-1,NULL,WNOHANG>0;chdEnded=1;}在main函数中添加语句signalSIGCHILD,child_handle;每次accept之前,让chdEnded=0;并且在doit中的serve_dynamic之后添加:whilechdEndedpause;r\n<p>",content;sprintf content,"%sTheansweris:%d+%d=%d\r\n<p>",content,n1,n2,n1+n2;sprintf content,"%sThanksforvisiting\r\n",content;/GeneratetheHTTPresponse/printf"Content-length:%d\r\n",int strlen content;printf"Content-type:text/html\r\n\r\n";printf"%s",content;fflush stdout;exit0;}更好的做法是在本页显示,目前暂时不会;想到的办法就是定义一个变量rmtd,表示请求的方法;在client_error,serve_static和serve_dynamic中添加一个参数mtd改的地方也比较多,表示方法;如果mtd为HEAD,就只打印头部;结果如下:bnuzhanyuubuntu:~/CSAPP11/cgi-bin$telnetlocalhost12345Trying::1...Connectedtolocalhost.Escapecharacteris'^'.HEAD/HTTP/HTTP/Server:TinyWebServerContent-length:2722Content-type:text/htmlConnectionclosedbyforeignhost.bnuzhanyuubuntu:~/CSAPP11/cgi-bin$telnetlocalhost12345Trying::1...Connectedtolocalhost.Escapecharacteris'^'.HEAD/HTTP/Server:TinyWebServerContent-length:126150Content-type:image/gifConnectionclosedbyforeignhost.还是使用rmtd表示方法;这里需要改的还有读取报头;用POST方法,表单的参数是在报头之后;报头中有一项是Content-Length,读取出来,在报头读完之后,接着读取Content-Length个字节注意最后添0,这些字节就是form用post方法提交的数据;主要修改的就是doit方法和read_request方法;下面的程序只能针对参数为文本的情况,且参数总长度最大不超过MAXLINE;define M_GET0define M_POST1define M_HEAD2define M_NONE-1void doit int fd{int is_static;int rmtd= 0;struct statsbuf;char bufMAXLINE,methodMAXLINE,uriMAXLINE,versionMAXLINE; char filenameMAXLINE,cgiargsMAXLINE;rio_trio;/forpost/int contentLen;char post_contentMAXLINE;/Readrequestlineandheaders/rio_readinitb&rio,fd;rio_readlineb&rio,buf,MAXLINE;sscanf buf,"%s%s%s",method,uri,version;printf"%s%s%s\n",method,uri,version;if strcmp method,"GET"==0rmtd=M_GET;elseif strcmp method,"POST"==0rmtd=M_POST;elseif strcmp method,"HEAD"==0rmtd=M_HEAD;else rmtd=M_NONE;if rmtd==M_NONE{clienterror fd,method,"501","NotImplemented", "Tinydoesnotimplementthismethod",rmtd;return;}contentLen= read_requesthdrs&rio,post_content,rmtd;/ParseURIfromGETrequest/is_static= parse_uri uri,filename,cgiargs;if stat filename,&sbuf<0{clienterror fd,filename,"404","Notfound","Tinycouldn'tfindthisfile",rmtd;return;}if is_static{/Servestaticcontent/if S_ISREG||S_IRUSR&{clienterror fd,filename,"403","Forbidden","Tinycouldn'treadthefile",rmtd;return;}serve_static fd,filename,,rmtd;}else{/Servedynamiccontent/if S_ISREG||S_IXUSR&{clienterror fd,filename,"403","Forbidden","Tinycouldn'truntheCGIprogram",rmtd;return;}if rmtd==M_POSTstrcpy cgiargs,post_content;serve_dynamic fd,filename,cgiargs,rmtd;}}int read_requesthdrs rio_trp,char content,int rmtd{char bufMAXLINE;int contentLength= 0;char begin;rio_readlineb rp,buf,MAXLINE;while strcmp buf,"\r\n"{rio_readlineb rp,buf,MAXLINE;printf"%s",buf;if rmtd==M_POST&&strstr buf,"Content-Length:"==bufcontentLength= atoi buf+strlen"Content-Length:";}if rmtd==M_POST{contentLength= rio_readnb rp,content,contentLength; contentcontentLength=0;printf"POST_CONTENT:%s\n",content;}returncontentLength;}strstr那句也可以用strncmp代替效率应该高一些;表单改成Post之后,运行效果:为了测试EPIPE错误,我在read_requesthdrs里面添加了sleep5;于是,在浏览器里请求之后,立即断开;进程出现错误:GET/User-Agent:Mozilla/X11;Ubuntu;Linuxi686;rv:Firefox/Accept:text/html,application/xhtml+xml,application/xml;q=,/;q=Accept-Language:en-US,en;q=Accept-Encoding:gzip,deflateConnection:keep-aliveSegmentationfaultbnuzhanyuubuntu:~/CSAPP11$为了解决这个问题,我用了setjmp和longjmp;当进程捕捉到SIGPIPE时,进入一个信号处理函数:jmp_bufbuf;void epipe_signal int sig{longjmp buf,1;}而在main函数中,doit部分需要这样改:rc= setjmp buf;if rc== 0{doit connfd;close connfd;}这样做虽然能解决这个问题,然而,如果是在子进程中longjmp也就是adder里sleep5时,浏览器关闭了,那么会不会有问题呢为了测试,我又在adder中加入了sleep5;并且setjmp后面的语句改为:if rc== 0{printf"rc=%d pid=%d\n",rc,getpid;doit connfd;close connfd;}else printf"rc=%d pid=%d\n",rc,getpid;结果是,当我在adder的sleep期间关闭浏览器,没有输出rc的消息;后来想起来,输出已经被重定向了,而且是子进程和父进程的输出都被重定向了没懂为什么都重定向了;即,当浏览器再次请求时,rc=0也不会输出;。
关于欧盟GMP指南附录11“计算机系统” 的修订 - 概念文件介绍

Revision of the EU GMP Guide Annex 11 "Computerised Systems" -Presentation of Concept Paper关于欧盟GMP指南附录11“计算机系统”的修订- 概念文件介绍The current EU GMP Guidance Annex 11 "Computerised Systems" has been in force since 2011. It has been discussed for a long time to revise this annex in order to meet current technological and regulatory developments. On 16 November 2022, the EMA (European Medicines Agency) published a 5-page "Concept-Paper on the revision of Annex 11 of the guidelines on Good Manufacturing Practice for medicinal products -Computerised Systems". Comments on this concept paper can be submitted until 16 January 2023.当前的欧盟GMP指南附录11“计算机化系统”自2011年起就已经生效。
关于修订该附录以反映最新的技术和法规发展的讨论,已经持续了很长一段时间。
2022年11月16日,EMA(欧洲药品管理局)发表了一份长达5页的“关于修订药品良好生产规范指南附录11-“计算机化系统”的概念文件”。
有关此概念文件的评论可以持续提交,截止到2023年1月16日。
GMP法规附录《计算机化系统》那些事儿-Waters

GMP 法规附录法规附录《《计算机化系统计算机化系统》》那些事儿2015年5月26日,CFDA 正式发布了2010版GMP 法规的新附录之一《计算机化系统》,引起了国内制药行业的广泛讨论和高度关注。
其实许多制药企业对它的内容并不陌生,因为这则法规于2013年作为征求意见稿已经添加到新版GMP 法规附录中。
而现在,它将作为正式的法规于2015年12月1日起执行。
这则法规附录将给国内制药企业带来什么新的挑战?从近两年来CFDA 的一系列举措(频繁的飞行检查,2014年至今已取消近100家药企的GMP 证书)来看,国内GMP 的监管力度是显著增强的。
所以届时如果企业不能满足《计算机化系统》法规的要求,将可能面临十分严重的后果。
CFDA 为何要发布这则法规为何要发布这则法规??国内外GMP 法规有许多差异,而对计算机化系统的要求差异尤为明显。
CFDA 所执行的2010版GMP 法规内容与国际上其他法规机构的cGMP 法规是对等的,如FDA 21 CFR Part 211。
但美国的制药企业除了执行 21 CFR Part 211以外,同时还要遵守21 CFR Part 11法规;欧盟国家的制药企业除了执行欧盟GMP 以外,还要遵循Annex 11法规。
FDA 的21 CFR Part 11与欧盟的Annex 11的内容是类似的,都是针对于制药企业使用计算机化系统的法规要求。
新颁布的《计算机化系统》法规附录是国内法规与国际接轨的重要一步,将填补国内对于计算机化系统要求的法规空白,是实现与国际法规监管机构之间相互认可的前提条件之一。
法规到底讲了些什么法规到底讲了些什么??《计算机化系统》法规附录究竟讲了哪些内容?其实,我们发现内容并不多,全文共24条要求、6页,共计2500字。
我们尝试对这些法规条文作了初步的解读,把所理解的核心内容概括如下:1.CFDA 明确提出进行计算机化系统验证的要求以往,法规对于仪器的确认是一直有要求的,但对计算机软件验证的要求不明确。
计算机系统验证中文版

确认系统在规定的运行环境中运行时,全部生产工艺活动所发挥的执 行、控制等性能,满足事先批准的规格的要求,并文件化的行为。
2021/4/2
22
GAMP4 (7)
ISPE GAMP4: 规格与确认的基本框架
用户需求标准 (URS)
验证
功能标准 (FS)
验证
设计标准 (DS)
验证
系统构建
2021/4/2
ISPE
International Society for Pharmaceutical Engineering GAMP4:
Good Automation Manufacturing e Guide
GAMP5:
A Risk-Based Approach to Compliant GxP Computerized Systems
用户作业
(1) 系统确认
(2) URS的制定
⇒ D1 用户需求标准的制定
(3) 验证战略的决定
・风险评估
⇒ M3 风险评估
・系统构建评估
⇒ M4 SW/HW的分类
・供应商评估
⇒ M2 供应商审核
(4) 验证计划书的制定
(5) 系统规格的审核
⇒ M5 设计复核与需求追踪能力矩阵
与批准
(6) 系统开发过程的监控
计算机系统验证的实施与要点
2021/4/2
2009年1月19日 日挥株式会社 樱井 国幸
1
讲师介绍
樱井 国幸 (Sakurai Kuniyuki) 日挥株式会社 第2工程本部 医药服务事业部 GMP技术部主管 ・1976年进日挥公司。从事石油精制、石油化学、原料药等仪器设计方 面的工作。 ・之后,从事安全系统、研究所网络以及基础设施系统的设计工作,从 1992年开始从事药品生产设备等生产管理系统(MES)的设计。 ・1996年到1999年为止,负责LNG工厂综合信息系统(ERP,分析信息系 统、厂房信息系统、电子文件管理系统、维护管理系统,等等)的建立。
LIMS系统需求说明书

本 URS 主要描述了我厂 QC 部门对检验标准、检验流程和检验数据等方面的管理需求。 本 URS 有效的向供应商描述我厂的具体需求,有利于系统初步选型,了解供应商对需求的匹配程度 和客制化开发范围。 本 URS 描述了我厂对 LIMS 系统的整体需求,是生命周期各阶段(调研、系统设计、开发和配置、 测试、系统验证等环节)的基础文件,为系统实施提供充分依据。 本 URS 可作为商务合同或其他文件的附件。 1.3 范围
检验报告。
URS-4.1 仪器台账
可录入仪器基础信息,对仪器基础信息进行维
URS-4.2 仪器使用记录
护,可自动提醒人员确认、保养、维修,可对仪
4
仪器管理
URS-4.3 仪器校验台账
器进行上下线管理,下线仪器不能使用,可自动
URS-4.4 仪器保养台账
生成仪器使用记录。
URS-4.5 仪器确认台账
系统可录入标准品、试剂、试液、菌种、细胞、 URS-5.1 一般物品入库
项目实施遵循 ISPE GAMP5 指南,提供整套计算机系统验证文档;
系统功能、流程、效率满足春光医药有限公司的质量管理体系和企业经营要求。
1.5 参考法规和指南
序号
1 2 3
文件名称
《药品生产质量管理规范》(2010 年修订) 《药品生产质量管理规范》附录:计算机化系统 《药品经营质量管理规范》(2013 年修订)
2
文件名称 LIMS 系统需求说明书
受控状态
编码
版本
V01
序号 4 5
6
7 8 9
2011年版GMP附录《计算机化系统》解读

2010版GMP附录《计算机化系统》解读2015年5月26日,国家食品药品监督管理总局(CFDA)正式发布了2010版GMP的新附录之一《计算机化系统》,并于2015年12月1日起执行,引起了国内制药行业的广泛讨论和高度关注。
一、本附录出台的背景1、与国际化接轨的要求。
国内外GMP法规有许多差异,而对计算机化系统的要求差异尤为明显。
CFDA所执行的2010版GMP法规内容与国际上其他法规机构的cGMP法规是对等的,如FDA 21 CFR Part 211。
但美国的制药企业除了执行 21 CFR Part 211以外,同时还要遵守21 CFR Part 11法规;欧盟国家的制药企业除了执行欧盟GMP以外,还要遵循Annex 11法规。
FDA的21 CFR Part 11与欧盟的Annex 11的内容是类似的,都是针对于制药企业使用计算机化系统的法规要求。
新颁布的《计算机化系统》法规附录是国内法规与国际接轨的重要一步,填补了国内对于计算机化系统要求的法规空白,是实现与国际法规监管机构之间相互认可的前提条件之一。
2、行业发展的要求。
随着中国医药行业信息化的发展,计算机化系统在药品生产过程中的应用不断增多,制药企业和相关软件厂商运用信息技术和系统控制技术提升生产效率、改进生产和质量管理成为医药行业计算机化系统应用的重要方向之一。
因此,如何对计算机化系统进行有效地验证就成为制药企业质量管理体系中的重要环节,CFDA在《药品生产质量管理规范(2010年修订)》(GMP)中也将计算机化的仓库管理系统和其他相关计算机软件的变更纳入变更控制范畴要求。
3、监督管理部门监管的需要。
从认证检查中发现的问题来看,无菌制剂企业GMP认证中检查缺陷主要分布在质量管理、质量控制与质量保证,机构与人员,厂房与设施,设备,物料与产品等11个方面。
非无菌制剂企业的跟踪检查中发现的典型问题则包括未定期对关键系统完成再确认或再验证,企业的质量管理体系运行存在问题等。
系统维护教材2011版

系统维护教材2011版编辑:王晓铭第一章:U盘方式启动GHOST安装环境:特别说明:安装系统一定要先断网的前提下安装1.U盘插到电脑上,开机进入BIOS(目前多数笔记本都是按F2进入BIOS;台式机启动按DEL键),按DEL进入BIOS,进入boot选项卡,选择“hard disk drives"(硬盘驱动器)进入BIOS,首先将第一启动调整为First boot device调整为:USB-HDD,然后,再选择“Hard disk boot prierity"选项将你的U盘调整为第一个驱动器:2.3.将“1st drive"调整为你的U盘,如图:4.如果显示的不是你的U盘,可以按回车进行选择调整:用“PagUp”和“PagDn”调整上下位置调整完毕后,反回,然后进入"Boot device prinrity"选项卡,将第一启动调整为你的U盘5.最后按F10保存退出。
6.接下来,我们就可以重启电脑,用你的启动U盘进入你的WINPE来进行安装、恢复、还原系统了,可以按提示操作安装系统。
7.小结:从中可以看到,以上的bios选项都各不相同,市场上常见的主要这两种,调整的选项都是为了一个目的:把电脑的启动项设为从USB设备启动,这样才能达到从U盘启动电脑的效果。
把电脑的第一启动项设为USB设备启动-----修改BIOS后记得保存哦!快捷方式一般F10。
第二章:安装XP1.首先,U盘启动WINPE,进入PE系统。
2.启动到PE后,点开始→程序→克隆工具→诺顿GHOST32 V11,如图3.这样,ghost程序被运行,如图,点OK选择local-partition-from image ,如图,也就是从上往下数1-2-3 ,一定注意选择不要搞错了,搞错了会很麻烦的。
操作很简单,要细心检查以避免不必要的麻烦。
用鼠标点击浏览选择盘符和路径找到GHOST镜像文件*.GHO点OPEN打开,弹出如下界面,继续OK选择要恢复到的磁盘驱动器,在这里,有两个磁盘,一个是U盘,别一个大的是硬盘,选择硬盘选择恢复到系统分区C盘点击OK,出现提示分区将被重写覆盖。
各种操作系统安全配置方案

操作系统安全配置方案内容提要Windows 的安全配置。
操作系统的安全将决定网络的安全,从保护级别上分成安全初级篇、中级篇和高级篇,共36 条基本配置原则。
安全配置初级篇讲述常规的操作系统安全配置,中级篇介绍操作系统的安全策略配置,高级篇介绍操作系统安全信息通信配置。
操作系统概述目前服务器常用的操作系统有三类:UnixLinuxWindows NT/2000/2003 Server 。
这些操作系统都是符合C2 级安全级别的操作系统。
但是都存在不少漏洞,如果对这些漏洞不了解,不采取相应的措施,就会使操作系统完全暴露给入侵者。
UNIX 系统UNIX 操作系统是由美国贝尔实验室开发的一种多用户、多任务的通用操作系统。
它从一个实验室的产品发展成为当前使用普遍、影响深远的主流操作系统。
UNIX 诞生于20 世纪60 年代末期,贝尔实验室的研究人员于1969 年开始在GE645 计算机上实现一种分时操作系统的雏形,后来该系统被移植到了DEC 的PDP-7 小型机上。
1970 年给系统正式取名为Unix 操作系统。
到1973 年,Unix 系统的绝大部分源代码都用C 语言重新编写过,大大提高了Unix 系统的可移植性,也为提高系统软件的开发效率创造了条件。
主要特色UNIX 操作系统经过20 多年的发展后,已经成为一种成熟的主流操作系统,并在发展过程中逐步形成了一些新的特色,其中主要特色包括5 个方面。
(1 )可靠性高(2 )极强的伸缩性(3 )网络功能强(4 )强大的数据库支持功能(5 )开放性好Linux 系统Linux 是一套可以免费使用和自由传播的类Unix 操作系统,主要用于基于Intel x86 系列CPU 的计算机上。
这个系统是由全世界各地的成千上万的程序员设计和实现的。
其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix 兼容产品。
Linux 最早开始于一位名叫Linus Torvalds 的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。
EUGMP问答-11附录11计算机化系统10问201102

EUGMP问答-11附录11计算机化系统10问201102EUGMP guide annexes: Supplementary requirements: Annex 11: Computerised systemsEU GMP指南附录:补充要求:附录11:计算机化系统1.Appropriate controls for electronic documents such as templates should beimplemented. Are there any specific requirements for templates of spreadsheets?H+V February 2011 对于电子文件,例如模板要进行适当的控制。
这里对于数据表是否有什么特定的要求?H+V 2011年2月Templates ofspreadsheets help to avoid erroneous calculations from data remaining fromprevious calculations. They should be suitably checked for accuracy andreliability (annex 11 p7.1). They should be stored in a manner which ensuresappropriate version control (chapter 4 p4.1).数据表的模板帮助避免之前计算保留数据导致的错误计算。
针对数据表,要检查其准确性和可靠性(附录11页7.1)。
数据表存贮方式要能保证适当的版本控制(第4章页4.1)。
2. What typeof accuracy checks (annex 11 p 6) are expected for the use of spreadsheets? H+VFebruary 2011使用数据表格时,要进行哪些准确度检查(附录11页5)?H+V 2011年1月Data integrityshould be ensured by suitably implemented and risk-assessed controls. Thecalculations and the files should be secured in such a way that formulationsare not accidentally overwritten. Accidental input of an inappropriate datatype should be prevented or result in an error message (e.g. text in a numericfield or a decimal format into an integer field). So-called 'boundary checks'are encouraged.应通过适当实施的和基于风险的控制来保证数据完整性。
EU GMP 附录11:计算机化系统问答

EU GMP 附录11:计算机化系统问答1. Appropriate controls for electronic documents such astemplates should be implemented. Are there any specific requirements fortemplates of spreadsheets? H+V February 2011对于电子文件,例如模板要进行适当的控制。
这里对于数据表是否有什么特定的要求?H+V 2011年2月Templates of spreadsheets help to avoiderroneous calculations from data remaining from previous calculations. Theyshould be suitably checked for accuracy and reliability (annex 11 p7.1). Theyshould be stored in a manner which ensures appropriate version control (chapter4 p4.1).数据表的模板帮助避免之前计算保留数据导致的错误计算。
针对数据表,要检查其准确性和可靠性(附录11页7.1)。
数据表存贮方式要能保证适当的版本控制(第4章页4.1)。
2. What type of accuracy checks (annex 11 p 6) areexpected for the use of spreadsheets? H+V February 2011使用数据表格时,要进行哪些准确度检查(附录11页5)?H+V 2011年1月Data integrity should be ensured bysuitably implemented and risk-assessed controls. The calculations and the filesshould be secured in such a way that formulations are not accidentallyoverwritten. Accidental input of an inappropriate data type should be preventedor result in an error message (e.g.text in a numeric field or a decimal formatinto an integer field). So-called 'boundary checks' are encouraged.应通过适当实施的和基于风险的控制来保证数据完整性。
GMP附录《计算机化系统》那些事儿

GMP附录《计算机化系统》那些事⼉GMP法规附录《计算机化系统》那些事⼉?2015年5⽉26⽇,CFDA正式发布了2010版GMP法规的新附录之⼀《计算机化系统》,引起了国内制药⾏业的⼴泛讨论和⾼度关注。
其实许多制药企业对它的内容并不陌⽣,因为这则法规于2013年作为征求意见稿已经添加到新版GMP法规附录中。
⽽现在,它将作为正式的法规于2015年12⽉1⽇起执⾏。
这则法规附录将给国内制药企业带来什么新的挑战?从近两年来CFDA的⼀系列举措(频繁的飞⾏检查,2014年⾄今已取消近100家药企的GMP证书)来看,国内GMP的监管⼒度是显著增强的。
所以届时如果企业不能满⾜《计算机化系统》法规的要求,将可能⾯临⼗分严重的后果。
CFDA为何要发布这则法规??国内外GMP法规有许多差异,⽽对计算机化系统的要求差异尤为明显。
CFDA所执⾏的2010版GMP法规内容与国际上其他法规机构的cGMP法规是对等的,如FDA?21?CFR?Part? 211。
但美国的制药企业除了执⾏?21?CFR?Part?211以外,同时还要遵守21?CFR?Part?11法规;欧盟国家的制药企业除了执⾏欧盟GMP以外,还要遵循Annex?11法规。
FDA的21?CFR? Part?11与欧盟的Annex?11的内容是类似的,都是针对于制药企业使⽤计算机化系统的法规要求。
新颁布的《计算机化系统》法规附录是国内法规与国际接轨的重要⼀步,将填补国内对于计算机化系统要求的法规空⽩,是实现与国际法规监管机构之间相互认可的前提条件之⼀。
法规到底讲了些什么??《计算机化系统》法规附录究竟讲了哪些内容?其实,我们发现内容并不多,全⽂共24条要求、6页,共计2500字。
我们尝试对这些法规条⽂作了初步的解读,把所理解的核⼼内容概括如下:?1.CFDA明确提出进⾏计算机化系统验证的要求?以往,法规对于仪器的确认是⼀直有要求的,但对计算机软件验证的要求不明确。
8_电子记录电子签名评估规程

1 目的/Purpose本规程规定了电子记录和电子签名评估的过程,以确认计算机系统是否需要符合电子记录和电子签名的要求,以达到GMP和欧盟EU Annex11.The purpose of this procedure is to define a procedure to assess the computerized system whether the computerized system is required to fulfill electronic records and electronic signatures requirements, in order to comply with GMP and EU Annex 11.2 范围/S c ope2.1 本规程使用于公司使用的、被评为直接影响的计算机系统。
This procedure is applied a applied to the computerized system which is classified as “Direct Impact” used in company.2.2 需按照本规程进行评估的系统包括,但不限于,以下:System to be assessed by using this procedure is including, but not limited, as below:a) 自动化系统/设备Automation System/Equipment.b) 实验室计算机设备Laboratory Computer Equipment.c) 计算机信息管理系统LIMSd) 环境监测系统EMSe) 关键公用工程系统Critical Utilities System.f) GXP计算机系统GxP Computerized System.3 职责/Responsibilities3.1 系统用户/System user使用电子记录电子签名评估表进行系统评估Perform assessment on system by using ERES Assessment Form.3.2 系统相关部门/System Associated Departmenta) 协助电子记录电子签名评估Assist in ERES Assessmentb) 审核电子记录电子签名评估表Review ERES Assessment Form3.3 质量管理部/QM Departmenta) 起草、批准本规程Prepare and approve this procedurea) 确认本规程的正确执行Ensure that this procedure is being executed correctlyb) 批准电子记录电子签名评估表Approve the ERES Assessment Formc) 存档已批准的电子记录电子签名评估表File the approve ERES Assessment Form4 定义/DefinitionERES:电子记录和电子签名Electronic Records and Electronic Signatures. ER:电子记录Electronic RecordsES:电子签名Electronic SignaturesGxP:质量管理规范总称General Term for Good Practice Quality Guidelines and Regulations GMP:药品质量管理规范Good Manufacturing PracticeEU:欧盟European UnionLIMS:实验室信息管理系统Laboratory Information Management System EMS:环境监测系统Environment Monitoring System5 程序/Procedure5.1 电子记录电子签名的评估根据《电子记录电子签名评估表》进行。
计算机化系统验证的法规要求要点

我们谈一谈计算机化系统验证的那些法规要求。
在法规上,主要与以下十一部有关:1.(US FDA) 21CFR Partll美国联邦法规21篇第11部分电子记录与电子签名2.(US FDA)工业指南11部分电子记录与电子签名-范围和应用3.(US FDA)联邦法规第21篇第210 211部分,成品药的现行生产质量管理规范4.(ISPE)良好自动化生产实践指南,遵从GxP计算机化系统监管的风险管理方法5.(ISPE)GAMP GPG良好实践指南,GAMP架构下的系列良好实践指南6.(EU)欧盟药事法规第4卷GMP,附录11《计算机化系统》7.(PIC/S)GMP指南,药用产品良好生产实践指南(TGA)GMP,药用产品良好生产实践指南8.(PIC/S)在“GxP”监管环境下的计算机化系统良好实践(检察官指南)9.(WHO)GMP 2003, Annex 4 (WHO TechnicalReport Series, No. 908)10.(CFDA) 2010年版GMP及征求意见稿《计算机化系统》11.(CFDA)GSP附录二附录三《药品经营企业计算机系统》当使用密码或其他方式来控制系统的登录;关键数据输入后, 应当由他人独立进行复核。
用电子方法保存的批记录,应当 采用磁带、缩微胶卷、纸质副本或其他方法进行备份,以确 保记录的安全,且数据资料在保存期内便于查阅。
附录1第七十条 采用自控和监测系统的,应当经过验证,保 证符合关键工艺的要求。
实践指南生成 与应用FDA21CFR Parti 1EU GMP Annex11 WHOGMPPIC/S GMP CFDA 《计算机化 系统》征求意见稿我们讲一讲相关的详细条款,摘录其中主要最关键的部分,供大 家参考:一、CFDA GMP 及附录:第一百六十三条 使用电子数据处理系统的,只有经授权的 人员方可输入或更改数据,更改和删除情况应当有记录;应自控操作代替 人工操作电子记录签名代替 手写记录签名PAT 应ISPE GAM PIC/S PIO FDA Part CFDA 药fii科学技术进步法规变更5二、CFDA GMP 征求意见稿《计算机化系统》O 第四条应使用科学的风险评估方法来决定计算机化系统验 证的范围与程度。
MSI Windows 11 Professionnel家庭用电脑说明书

Be Your Window To TheWorldSelling PointsWindows 10 Famille- MSI recommande Windows 11Professionnel pour les entreprisesMise à niveauGRATUITE vers Windows 11*Processeur jusqu'à Intel® Core™ i7-11700Support de la résolution 4K UHDSupport de la norme de connexion Wi-Fi 6Connectique complèteLogiciel MSI Center pour personnaliser votreexpérienceAccès facile au stockage et à la mémoireFirmware TPM pour une bonne sécurité des donnéesSupport de la fixation VESA* Le planning de mise à niveau varie en fonction desappareils. La disponibilité des fonctionnalités et desapplications peut varier selon le pays. Certainesfonctionnalités nécessitent un matériel spécifique (voirPicture and logos https:///fr-fr/windows/windows-11-specifications ...System I/O-Ports1x Headphone-out1.2.1x Mic-in3.4x USB 2.0 Type A1x DC jack4.5.1x HDMI out (2.0)6.1x COM port7.2x USB 3.2 Gen 1 Type A / 1x COM port8.1x RJ459.2x USB 3.2 Gen 1 Type A10.1x Mic-in11.1x Line-out12.1x Kensington LockSpecificationOperating Systems Windows Windows 10 HomeMise à niveau GRATUITE vers Windows 11*Processor CPU model Intel Core i3-10105 CPU Clock 3.7GHzCPU Cores4CPU TDP65WCPU Cache 6 MB Intel® Smart Cache CPU Threads8CPU Cooling Air coolingChipset Motherboard Chipset H510Discrete Graphics VGA I/O Port N/A Graphics Card N/AMemory Memory Capacity8GB(8GB*1) Memory Type DDR4 SDRAM Memory Speed1600(3200)MHz Memory Module Form Factor SO-DIMM Memory Slot (Total/Free)2/1Memory Max Capacity Max 64GBStorage Total SSD Storage Capacity256GBTotal HDD Storage Capacity N/AM.2 Slot (1) Installed SSD256GB*1M.2 Slot (1) Interface PCIe GEN3x4 w/o DRAM NVMe M.2 Slot (1) Form Factor M.2-2280 M-KEYM.2 slots (Total/Free)1/0HDD (1) RPM N/AHDD (1) Form Factor N/AHDD (1) Interface N/A3.5" Drive Bays (Total/Free)0/2.5" Drive Bays (Total/Free)2/2ODD(Type)N/AODD Height N/AODD Type N/ACommunications LAN Controller Realtek RTL8111H Wireless LAN Controller INTEL/9462.NGWG.NV Wireless LAN standard802.11ac 1x1+BT Bluetooth Version5Audio Audio Codec Realtek ALC897 Audio Support 5.1 Channel HD AudioI/O Ports (Front)Thunderbolt N/A USB 480Mbps (USB 2.0)4 Audio Mic-In (Front)1 Audio-Out (Front)1I/O Ports (Rear)USB 5Gbps (USB 3.2 Gen 1 Type-A)4LAN Ports (RJ45)1HDMI™1x (v2.0) COM Port2Power Rated Wattage120WEfficiency Rating N/A Form factor N/A Power Supply Type ADAPTORIn The Box Keyboard Interface N/A Mouse Interface N/A Power Cord1 AC Adaptor1 Warranty Card1 Quick Guide4 User Manual N/A VESA Mount kit N/A Keyboard N/A Mouse N/ARegulatory Compliance Storage Operating Temperature Range0° C ~ 35° C ; -20° C ~ 60° C Storage Operating Humidity Range0% ~ 85%;0% ~ 90%CertificationsFCC(Class B)CB/CEUL(CUL)BSMIDimension & Weight Product Dimensions (WxDxH) (mm)204 x 208 x 54.8 Product Dimensions (WxDxH) (inch)8.03 x 8.19 x 2.16 Inside Carton Dimensions (WxDxH) (mm)TBD x TBD x TBD Inside Carton Dimensions (WxDxH) (inch)TBD x TBD x TBD Outer Carton Dimensions Standard (WxDxH)(mm)271 x 382 x 122 Outer Carton Dimensions Standard (WxDxH)(inch)10.67 x 15.04 x 4.8 Weight (Net kg) 1.27Weight (Gross kg) 2.75Product Volume (Liters) 2.3VESA VESA size100 x 100 mm Warranty Warranty24months Model SKU Number9S6-B0A411-016。
GMP计算机化审计追踪相关知识一

审计追踪审核的法规要求Since 2011, Annex 11"Computerised Systems" of the EU GMP Guideline has demanded records of all GMP relevant changes and deletions to be implemented as a system-integrated Audit Trail: the reasons for changes and deletions must be documented. Audit Trails must be available, convertible into a generallyreadable form and checked regularly.自2011年,EU GMP指南附录11《计算机化系统》要求所有GMP 相关的修改和删除应记录作为系统完整性的审计追踪:应记录修改和删除的理由。
审计追踪应被激活,并转换成一般可读的形式,以及进行定期检查。
The PIC/S draft "Good Practices for Data Management and Integrity in Regulated GMP/GDP Environments"from August 2016 also defines Audit Trails and provides comprehensive review requirements.PIC/S草案“受法规约束的GMP/GDP环境下数据管理和完整性良好规范”自2016年8月也定义了审计追踪,并提供了全面的审核要求。
Pharmaceutical companies should upgrade their software so that the functionality for Audit Trails is included. Through this, all events in the system can be recorded and all activities regarding the collection,evaluation, deletion and overwriting of data for the Audit Trail Review are made available.制药企业应升级其软件以包括审计追踪功能。
中国GMP附录计算机化系统介绍 关于计算机化系统的法规及指南

EU GMP Annex 11 是“和”
20/25
系统
第二十条 企业应当建立应急方案,以便系统出现损坏时启用。应急方案启用 的及时性应当与需要使用该方案的紧急程度相关。例如,影响召回产品的相 关信息应当能够及时获得。
3/25
原则
第二条 计算机化系统代替人工操作时,应当确保不对产品的质量、过程 控制和其质量保证水平造成负面影响,不增加总体风险。 第三条 风险管理应当贯穿计算机化系统的生命周期全过程,应当考虑患 者安全、数据完整性和产品质量。作为质量风险管理的一部分,应当根 据书面的风险评估结果确定验证和数据完整性控制的程度。 主要描述了质量风险管理的要求。对于风险管理:一方面是整个生命周 期要实施风险管理,自动代替人工操作不会带来负面影响及总体风险增 加(必要的时候需进行工艺等同性验证来证明);另一方面是验证的范 围和程度要基于风险评估的结果来确定。
12/25
系统
第十二条 软件是计算机化系统的重要组成部分。企业应当根据风险评估 的结果,对所采用软件进行分级管理(如针对软件供应商的审计),评估 供应商质量保证系统,保证软件符合企业需求。 软件分级管理与供应商审计要求(同上所述,参见第四条和第六条解析)。
13/25
系统
第十三条 在计算机化系统使用之前,应当对系统进行全面测试,并确认系统 可以获得预期的结果。当计算机化系统替代某一人工系统时,可采用两个系 统(人工和计算机化)平行运行的方式作为测试和验证内容的一部分。 针对软件的全面测试,根据软件级别的不同其测试的程度也将不同(比如: 针对五类软件系统的源代码审核和模块测试,针对四类软件系统的配置测试, 然后是基于黑盒的功能测试、需求测试,以及包括结合实际工艺或流程的性 能测试)。 EU GMP 附录11 08年版时有“人工和计算机平行运行”要求,11已经正式 去掉。
13计算机系统测试及其优化

内蒙古电子信息职业技术学院
杨尚勇
2011年3月24日 星期四10时44分 54秒
第二节 windows注册表
9
二、windows注册表结构 1.注册表的文件组成 (1)Windows 98将注册表数据存入2个文件中:System.dat和User.dat, 保 存 在 Windows 文 件 夹 下 。 System.dat 包 含 了 计 算 机 特 定 的 配 置 数 据 , User.dat包含了用户特定的数据。 (2)在Windows 2000/XP中注册表数据被保存在五个文件中,分别是: DEFAULT(默认注册表文件),SAM(安全帐户管理注册表文件),SECURITY(安 全注册表文件),SOFTWARE(应用软件注册表文件),SYSTEM(系统注册表文件) 。在大多数情况下保存在系统目录\System32\Config文件夹中。
第一节 计算机系统综合测试
7
4.检测组件 检测组件也是用来测试系统的,与基准测试组件的区别在于,基准测试组件 负责硬件执行性能的高低水平,而检测组件则是负责检验计算机资源的分配, 如DMA、IRQ、I/O等。
内蒙古电子信息职业技术学院
杨尚勇Biblioteka 2011年3月24日 星期四10时44分 54秒
第二节 windows注册表
内蒙古电子信息职业技术学院
杨尚勇
2011年3月24日 星期四10时44分 54秒
第一节 计算机系统综合测试
3
三、Sisoft Sandra 2002的使用 由于Sisoft Sandra 2002是用来测试系统的,其它任何正在运行的程序 都会给系统测试带来一定的影响,因此在打开Sisoft Sandra 2002前先关闭 掉 所 有 的 应 用 程 序 。 然 后 执 行 “ 开 始 ” → “ 程 序 ” → “ Sisoftware Utilities”
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EUROPEAN COMMISSIONHEALTH AND CONSUMERS DIRECTORATE-GENERALPublic Health and Risk AssessmentPharmaceuticalsBrussels,SANCO/C8/AM/sl/ares(2010)1064599EudraLexThe Rules Governing Medicinal Products in the European UnionVolume 4Good Manufacturing PracticeMedicinal Products for Human and Veterinary UseAnnex 11: Computerised SystemsLegal basis for publishing the detailed guidelines: Article 47 of Directive 2001/83/EC on the Community code relating to medicinal products for human use and Article 51 of Directive 2001/82/EC on the Community code relating to veterinary medicinal products. This document provides guidance for the interpretation of the principles and guidelines of good manufacturing practice (GMP) for medicinal products as laid down in Directive 2003/94/EC for medicinal products for human use and Directive 91/412/EEC for veterinary use.Status of the document: revision 1Reasons for changes: t he Annex has been revised in response to the increased use of computerised systems and the increased complexity of these systems. Consequential amendments are also proposed for Chapter 4 of the GMP Guide.Deadline for coming into operation: 30 June 2011Commission Européenne, B-1049 Bruxelles / Europese Commissie,B-1049 Brussel - BelgiumTelephone: (32-2) 299 11 11PrincipleThis annex applies to all forms of computerised systems used as part of a GMP regulated activities. A computerised system is a set of software and hardware components which together fulfill certain functionalities.The application should be validated; IT infrastructure should be qualified.Where a computerised system replaces a manual operation, there should be no resultant decrease in product quality, process control or quality assurance. There should be no increase in the overall risk of the process.General1. Risk ManagementRisk management should be applied throughout the lifecycle of the computerised system taking into account patient safety, data integrity and product quality. As part of a risk management system, decisions on the extent of validation and data integrity controls should be based on a justified and documented risk assessment of the computerised system.2. PersonnelThere should be close cooperation between all relevant personnel such as Process Owner, System Owner, Qualified Persons and IT. All personnel should have appropriate qualifications, level of access and defined responsibilities to carry out their assigned duties. 3. Suppliers and Service Providers3.1 When third parties (e.g. suppliers, service providers) are used e.g. to provide, install, configure, integrate, validate, maintain (e.g. via remote access), modify or retain a computerised system or related service or for data processing, formal agreements must exist between the manufacturer and any third parties, and these agreements should include clear statements of the responsibilities of the third party. IT-departments should be considered analogous.3.2 The competence and reliability of a supplier are key factors when selecting a product or service provider. The need for an audit should be based on a risk assessment.3.3 Documentation supplied with commercial off-the-shelf products should be reviewed by regulated users to check that user requirements are fulfilled.3.4 Quality system and audit information relating to suppliers or developers of software and implemented systems should be made available to inspectors on request.Project Phase4. Validation4.1 The validation documentation and reports should cover the relevant steps of the life cycle. Manufacturers should be able to justify their standards, protocols, acceptance criteria, procedures and records based on their risk assessment.4.2 Validation documentation should include change control records (if applicable) and reports on any deviations observed during the validation process.4.3 An up to date listing of all relevant systems and their GMP functionality (inventory) should be available.For critical systems an up to date system description detailing the physical and logical arrangements, data flows and interfaces with other systems or processes, any hardware and software pre-requisites, and security measures should be available.4.4 User Requirements Specifications should describe the required functions of the computerised system and be based on documented risk assessment and GMP impact. User requirements should be traceable throughout the life-cycle.4.5 The regulated user should take all reasonable steps, to ensure that the system has been developed in accordance with an appropriate quality management system. The supplier should be assessed appropriately.4.6 For the validation of bespoke or customised computerised systems there should be a process in place that ensures the formal assessment and reporting of quality and performance measures for all the life-cycle stages of the system.4.7 Evidence of appropriate test methods and test scenarios should be demonstrated. Particularly, system (process) parameter limits, data limits and error handling should be considered. Automated testing tools and test environments should have documented assessments for their adequacy.4.8 If data are transferred to another data format or system, validation should include checks that data are not altered in value and/or meaning during this migration process.Operational Phase5. DataComputerised systems exchanging data electronically with other systems should include appropriate built-in checks for the correct and secure entry and processing of data, in order to minimize the risks.6. Accuracy ChecksFor critical data entered manually, there should be an additional check on the accuracy of the data. This check may be done by a second operator or by validated electronic means. The criticality and the potential consequences of erroneous or incorrectly entered data to a system should be covered by risk management.7. Data Storage7.1 Data should be secured by both physical and electronic means against damage. Stored data should be checked for accessibility, readability and accuracy. Access to data should be ensured throughout the retention period.7.2 Regular back-ups of all relevant data should be done. Integrity and accuracy of back-up data and the ability to restore the data should be checked during validation and monitored periodically.8. Printouts8.1 It should be possible to obtain clear printed copies of electronically stored data.8.2 For records supporting batch release it should be possible to generate printouts indicating if any of the data has been changed since the original entry.9. Audit TrailsConsideration should be given, based on a risk assessment, to building into the system the creation of a record of all GMP-relevant changes and deletions (a system generated "audit trail"). For change or deletion of GMP-relevant data the reason should be documented. Audit trails need to be available and convertible to a generally intelligible form and regularly reviewed.10. Change and Configuration ManagementAny changes to a computerised system including system configurations should only be made in a controlled manner in accordance with a defined procedure.11. Periodic evaluationComputerised systems should be periodically evaluated to confirm that they remain in a valid state and are compliant with GMP. Such evaluations should include, where appropriate, the current range of functionality, deviation records, incidents, problems, upgrade history, performance, reliability, security and validation status reports.12. Security12.1 Physical and/or logical controls should be in place to restrict access to computerised system to authorised persons. Suitable methods of preventing unauthorised entry to the system may include the use of keys, pass cards, personal codes with passwords, biometrics, restricted access to computer equipment and data storage areas.12.2 The extent of security controls depends on the criticality of the computerised system. 12.3 Creation, change, and cancellation of access authorisations should be recorded.12.4 Management systems for data and for documents should be designed to record the identity of operators entering, changing, confirming or deleting data including date and time.13. Incident ManagementAll incidents, not only system failures and data errors, should be reported and assessed. The root cause of a critical incident should be identified and should form the basis of corrective and preventive actions.14. Electronic SignatureElectronic records may be signed electronically. Electronic signatures are expected to:a. have the same impact as hand-written signatures within the boundaries of thecompany,b. be permanently linked to their respective record,c. include the time and date that they were applied.15. Batch releaseWhen a computerised system is used for recording certification and batch release, the system should allow only Qualified Persons to certify the release of the batches and it should clearly identify and record the person releasing or certifying the batches. This should be performed using an electronic signature.16. Business ContinuityFor the availability of computerised systems supporting critical processes, provisions should be made to ensure continuity of support for those processes in the event of a system breakdown (e.g. a manual or alternative system). The time required to bring the alternative arrangements into use should be based on risk and appropriate for a particular system and the business process it supports. These arrangements should be adequately documented and tested.17. ArchivingData may be archived. This data should be checked for accessibility, readability and integrity. If relevant changes are to be made to the system (e.g. computer equipment or programs), then the ability to retrieve the data should be ensured and tested.GlossaryApplication: Software installed on a defined platform/hardware providing specific functionalityBespoke/Customized computerised system: A computerised system individually designed to suit a specific business processCommercial of the shelf software: Software commercially available, whose fitness for use is demonstrated by a broad spectrum of users.IT Infrastructure: The hardware and software such as networking software and operation systems, which makes it possible for the application to function.Life cycle: All phases in the life of the system from initial requirements until retirement including design, specification, programming, testing, installation, operation, and maintenance.Process owner: The person responsible for the business process.System owner: The person responsible for the availability, and maintenance of a computerised system and for the security of the data residing on that system.Third Party: Parties not directly managed by the holder of the manufacturing and/or import authorisation.。