当前位置:  建站>运营/SEO
本页文章导读:
    ▪linux杂记       kernel是内核(与机器打交道)  application是应用 shell是外壳(与人打交道) 怎么看是什么外壳? 每一个终端由shell提供出来 一种提示符一种外壳 “%”号结尾  cshell    .........
    ▪内存管理之虚拟页式分配             分页内存分配和分段内存分配可以解决程序在内存中离散存放的问题,但是,这个两种方式都要求程序将整个装入内存。如果程序比内存大,那么分页和分段都无法解决这.........
    ▪sap 用户接口(User exit)      在标准SAP业务应用中常会修改标准程序和增加一些自己的功能代码来满足特定化的需求,SAP提供了一些出口对特定的程序、屏幕、MENU以及Docuement进行扩展与修改,他们并不包含任何功能,并.........

[1]linux杂记
    来源: 互联网  发布时间: 2013-10-31

kernel是内核(与机器打交道)  application是应用 shell是外壳(与人打交道)

怎么看是什么外壳? 每一个终端由shell提供出来

一种提示符一种外壳

“%”号结尾  cshell        $ 号结尾  bash

管理员登录是“#”号结尾提示符,有警告的意思     

管理员名字叫root,根用户

有各种shell,细微操作差别不同

怎么换外壳,在终端中: 例如: bash 在提示符后 敲bash 后回车即可

“clear”命令  终端清屏

“ps”命令  进程状态

“q”在进入man时退出

“chsh”命令,改变shell

为什么一开始有shell,管理员指定的

跟目录 /etc/passwd这个文件里存着用户信息

“cat”命令,显示内容,格式例如:cat /etc/passwd

密码在 /etc/shadow 文件中

“passwd”命令  密码

“id” 命令 查看用户

“who”命令  查看有谁登录了(whoan i看自己)】

“w” 命令 ,查看用户在干嘛 ,查看当前用户在干什么

“su”命令  改变用户

“ls” 命令  列出权限

“which”命令   告诉你XX指令在哪儿

“~”命令   查看当前用户主目录

“~ 用户名”命令  查看当前用户名的用户的主目录

“alias  XXX=""命令  别名

“.”命令  当前目录

主目录,一开始所在位置,即出生地 

当前目录,当前所在地

“..”命令  上一级目录

“../..”命令  上上一级目录

“pwd”命令  当前目录名字

“cd”命令   ,例如输入cd uc后回车,切换进入到uc目录

绝对路径,以/开头                           相对路径,不以/开头

以“.”开头的文件在Linux中为隐藏文件,软件用隐藏文件保存配置信息

“ln”命令,软链接

“touch”命令   建立一个文件

“mkdir”命令   建立目录

“mkdir -p”命令   建立逐层创建目录

“rm”命令   删除文件


    
[2]内存管理之虚拟页式分配
    来源: 互联网  发布时间: 2013-10-31

       分页内存分配和分段内存分配可以解决程序在内存中离散存放的问题,但是,这个两种方式都要求程序将整个装入内存。如果程序比内存大,那么分页和分段都无法解决这个问题。其实一个程序在短时间内的执行可能局限于某小段程序范围内,这样把程序全部调入内存早成空间浪费,可以只装入一部分,进程需要的其他数据存放在外存,当需要的时候调入内存。这样做的好处:内存中可以保存更多的进程;进程可以比主存大。

1.虚拟存储器

       虚拟存储是指请求调入功能和置换功能。给用户的感觉是整个进程被调入了内存,其实是只有一部分,其余部分在外村。虚存就是内存和外存之和。虚拟存储需要解决如下几个问题:

     (1)地址映射:一个页面可能多次被调入和调出内存,每次在内存的地址不同,这就需要将逻辑地址转换为相应的物理地址,并且是动态的。

     (2)分配策略:为了访问虚存中的任何部分,待访问的数据必须驻留在内存。事先要提供一个种存储器分配策略,以确定要调入的部分装入到存储器的哪个位置。

     (3)置换策略:当系统内存空间不够时,系统必须通过换出页面来找到空间。系统可以将进程某些不用的空间换出内存,也可以将其他进程页面换出,如何取舍。

     (4)装载控制:静态装载将进程的所有虚拟存储器装载到内存。动态装载只是用的时候才装入。

2.请求分页

       请求分页存储管理方式也叫虚拟页式分配,是虚拟器存储器的一种实现方法。所谓请求分页是指在基本分页上的基础上增加请求调页和页面置换功能的一种存储分配策略。纯分页系统中,进程的所有页面都在物理内存中,而虚拟页式分配,一个进程只有部分页在内存中,一部分在外存中。一旦进程访问的页不在内存,对进程来说就意味着缺页,就通过缺页中断向操作系统发出一个请求,请求把内存中位于外存的页调入内存。

     请求分页的硬件支持:页表需要加入几个标志项,缺页中断机构和地址变换机构。

      内存分配策略:分配给一个进程的存储量越小,内存中容纳的进程数越多,但是进程缺页异常也就越频繁。同时给进程分配一定数量的物理块后,由于局部原理,给该进程分配更多的页物理块对该进程的缺页率无影响了。三种分配策略:

     (1)固定分配策略:分配给进程的物理块在运行过程中不变,当进程发生缺页时,从该进程中占用的几个物理块找到一页替换出去。

     (2)可变局部分配策略:内存中每个进程分配了一定数量的物理块。但是系统中还有一个空闲物理块。进程发生缺页时,先检查空闲物理块,如果有空的,直接分配给进程。没有空的,只能从进程自己的空间中选一页置换出去。

     (3)可变分配全局置换:一旦进程发生缺页,从整个内存中选择一页置换出去。

       在采用固定分配时,可以按照进程数平均分配给每个进程等份的空间;可以按照进程大小比例分配空间;考虑进程优先级分配。

3.页面转换算法

      当页不在内存中,系统要选一页移到外存中,下面介绍几个固定分配局部置换的内存分配策略:

     (1)最优页面置换算法(OPT):缺页时,当前内存中的这几页中,有的页再也不用了,那么把该页置换出是最好的。如果当前内存中的几页都要使用,选择一个最后用到的页把他转换出去。

范例:内存为某进程分配三个物理块(不能变了),进程页面走向如下:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

        7:发生缺页中断,调入内存;  0:发生缺页中断,调入内存;1:发生缺页中断,调入内存;2:需要从7,0,1中选择一个置换,页面7是第18个要访问的页面,0是第5个要访问的页面,1是第14个访问的页面,所以选择7置换,即内存总还剩2 0 1。依次类推。。。

注意:开始内存是空的,所以没有页面,这时也算缺页异常。

      (2)先进先出算法:总是选择当前系统中最早进入内存的那一页置换出去。

范例:内存为某进程分配三个物理块(不能变了),进程页面走向如下:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

       7:发生缺页中断,调入内存;  0:发生缺页中断,调入内存;1:发生缺页中断,调入内存;2:淘汰7,即内存中0 1 2;2:已经在内存;0:在内存;3:0是最早进入内存的,虽然前一次是0,但是因为内存中,已经有了所以不算新进入的。后面依次了退。。

        FIFO算法有时候会产生Belady现象,即分配给进程空间增大,反而缺页率增加了,其他算法没有。

     (3)最近很少使用置换算法(LRU):总是选择当前页面中没有被使用时间最久的那一页,即使用最少的那一页,将它换出出去。

范例:

    
[3]sap 用户接口(User exit)
    来源: 互联网  发布时间: 2013-10-31

在标准SAP业务应用中常会修改标准程序和增加一些自己的功能代码来满足特定化的需求,SAP提供了一些出口对特定的程序、屏幕、MENU以及Docuement进行扩展与修改,他们并不包含任何功能,并被分离存在特定的package里所以他既不会影响标准SAP源代码也不会妨碍升级。除了通过后台配置客户化,我们常用主要有三种用户出口来进行Enhancement和Modification:   
      1,User Exit,最早的出口嵌写在标准程序里,修改起来也最为复杂。如Order处理上使用的SAPMV45A中就包含大量ZZ或YY结尾的user exit程序MV45AFZZ/MV45AIZZ。 
      2,Customer Exit,主要有三种类型Menu Exit/Screen Exit/FM Exit,首先通过CMOD来创建一个Project然后指定所需要的Enhancement,然后指定Component并激活。最后则需要加些所需代码在自动创建一个Z程序里。
      3, BADI,SE18/SE19,正如引入了OO的技术,在定义与实现在与Customer Exit两层是一样的,能客户化用户想用的标准解决方案的逻辑,对于开发者主要是通过一些方法来找到合适的BADI。

 

用户接口(user exit)就是SAP提供的一些Form, 这些Form会在特定的时候被标准程序Call到。标准系统里面这些Form是空的,用户可以根据自己的业务要求添加程序进去,不过这些程序需要用户自己承担风险,因为User exit其实也属于Modification的一种。那么对各个User exit越了解,出错的可能性就越小,所以在这篇日志中我们来谈谈SD sales这个流程中用到的User exit的用途,应用以及信息输出。

 

FORM routine USEREXIT_REFRESH_DOCUMENT (Include MV45AFZA)

用途:FORM routine USEREXIT_REFRESH_DOCUMENT可以在创建或者处理新订单之前,对用户自定义的数据进行初始化。
Call:此接口被BELEG_INITIALISIEREN(SAPMV45A) call。通常这个程序会在订单被保存之后或者是用户选择’Back’ 或’Cancel’ 回到初始画面之前运行。
数据读取:不建议在这个User exit里面进行订单数据的读取,后果不祥。
信息输出:在这个User exit里面输出错误信息没有意义。

FORM routine USEREXIT_DELETE_DOCUMENT (Include MV45AFZZ)

用途:当一个销售订单被删除的时候,您可以通过这个接口来删除您自己定义的一些独立数据。
Call:此接口实在销售订单能够被完全删除的时候在BELEG_LOESCHEN (SAPMV45A) 中被call到。它紧接着FORM
routine USEREXIT_DELETE_DOCUMENT。
数据读取:可以在此接口中读取到理论上已经被删除(数据库还未更新)的销售订单数据。构造VBAK中储存了抬头信息。
内表XVBAP中储存了将要被删除的项目信息,包括删除前用户对项目进行的最后修改,每个项目的变更指示(UPDKZ)都是“D”.
内表YVBAP中包含了所有项目的信息。
内表XVBUP,XVBPA中已经不包含任何当前订单的信息。存在数据库上的数据可以在YVBUP和YVBPA中查到。
内标XVBUK仍然存在,YVBUK不存在。
在此接口中对内表进行操作会引发数据不一致,因此不推荐。
信息输出:错误信息的输出在USEREXIT_DELETE_DOCUMENT中应被限制。在此接口中不可以输出E或者W信息。可能会引发Dump DYNPRO_MSG_IN_HELP .
附加信息:当此接口被Call到的时候,删除销售订单的这个操作已经无法被避免,因为理论上数据都已经删除了。如果必须要求停止删除的操作,那么可以用信息类型A来强制中止运行。

FORM routine USEREXIT_READ_DOCUMENT (Include MV45AFZZ)

用途:这个接口用来读取您自己的数据以便于后续进行订单处理。
Call:此接口会在变更或者显示订单的时候被Call到。
数据读取:在此接口中可以读取到当前订单所有已经被读取的信息。理论上在此接口中也可以对已经读取的数据进行更改,不过请先阅读在
 USEREXIT_SAVE_DOCUEMENT_PREPARE描述中介绍的变更订单的注意事项。
信息输出:基本无限制。不过需要注意这个接口在Background处理的时候也会被Call到。

FORM routine USEREXIT_MOVE_FIELD_TO_VBAK (Include MV45AFZZ)

用途:这个接口用来给您自己添加在VBAK表中的项目付值。
Call:此接口在新订单创建的过程中,在VBAK_FUELLEN(SAPMV45A)的结尾被Call到。
数据读取:在此阶段还读取不到其他数据,因为此订单还在创建过程中。不过当参照其他订单创建销售订单的时候,在这个接口中通过内表CVBAK, CVBAP, CVBPA, CVBEP可以读到被参照订单的数据。读取这些数据的时候请注意保证这些表的表头不被更改,可以把数据导到自定义的构造中处理。
如果您想在此接口中对已经存在的VBAK项目值进行更改,请注意,针对这些项目进行过的检查是需要您重新触发的。请提前进行独立性分析,以避免数据不一致。不推荐在此接口中对VBAK以外的数据进行更改,很容易造成数据不一致。
信息输出:错误信息不允许才此接口直接输出。您可以通过FORM routine MESSAGE_HANDLING (main program SAPMV45A)对信息类型I或者E的信息来创建错误日志(如果是在变更模式下,这些信息将不会被直接输出,而是保存在日志中)。信息类型W的信息是不会被包含在日志中的。

FORM routine USEREXIT_MOVE_FIELD_TO_VBAP(Include MV45AFZZ)

用途:这个接口用来给您自己添加在VBAP表中的项目付值.
Call:这个接口会在创建项目的时候,在VBAP_FUELLEN(参照创建)或者VBAP_FUELLEN_OR(无参照创建)的末尾被Call到。
数据读取:此接口被Call到的时候,表头信息(结构VBAK)和合伙伙伴(内表XVBPA)可以读取到。新项目的状态(VBUP)还不能读取。如果之前已经登录了其他的项目,那么表头的状态可以在XVBUK中读取到。已经存在的项目状态可以在内表XVBUP中读取到。如果您想在此接口中对已经存在的标准表项目值进行更改,请注意,针对这些项目进行过的检查是需要您重新触发的。请提前进行独立性分析,以避免数据不一致。不建议在此接口中对其他表的项目值进行修改。请注意不要更改现有的内表的表头。建议创建您自己的结构来读取内表中的值以确保标准内表不被更改。
信息输出:直接的信息输出是不允许的,会造成数据不一致。您可以通过FORM routine MESSAGE_HANDLING (main program SAPMV45A)对信息类型I或者E的信息来创建错误日志(如果是在变更模式下,这些信息将不会被直接输出,而是保存在日志中)。
 

FORM routine USEREXIT_SAVE_DOCUMENT_PREPARE (Include MV45AFZZ)

用途:此接口是用途最广泛的接口。可以用来对销售定单中的数据进行最后的修改。当此接口被Call到的时候,这张单子的数据已经完整,只有订单号没有被决定(仅限于创建订单的时候)。因此在此接口中所作的修改一般是不会有后续检查来避免不一致的。
Call:此接口在订单被保存之前在BELEG_SICHERN (SAPMV45A)中被Call到。
数据读取:因为是在订单保存之前被Call到,所有信息都可以在内表中被读取到。现存的值是存在X表中,更改之前的值存在Y表中。
信息输出:如果您想输出信息的话,必须要考虑到这个接口在Background处理的时候也会被Call到。

FORM routine USEREXIT_SAVE_DOCUMENT (Include MV45AFZz)

用途:此接口用来保存您自定义的数据值。标准表中的信息已经不能被更改,因为才此阶段,标准表值已经被传输到更新。
Call:此接口在订单保存过程中,紧挨着Commit work之前被BELEG_SICHERN(SAPMV45A) Call到。
数据读取:跟USEREXIT_SAVE_DOCUMENT_PREPARE 一样,所有信息都可以在内表中被读取到。并且如果是登录订单的情况,订单号也可以读取到。请务必不要在此接口中加入COMMIT WORK 或ROLLBACK WORK 语句。
信息输出:不允许在此接口输出对话信息。因为此处已经非常临近Commit work了。如果业务要求必须中止订单保存,可以使用message type “A”来强行中止。

作者:champaignwolf 发表于2013-6-16 11:42:51 原文链接
阅读:0 评论:0 查看评论

    
最新技术文章:
▪SQVI和SAP查询QUERY的区别和使用注意事项    ▪彻底理解Cisco/Linux/Windows的IP路由    ▪Exchange 2010 处于禁止发送用户自动收到来自IT...
▪MB_CHANGE_DOCUMENT使用方法    ▪ALV的html表头    ▪【译】如何精确判断最终用户响应时间过长的...
▪apache2.4.4启用deflate压缩    ▪使用vmware 配置centos 6.0+ 网络出现的各种问题...    ▪十句话教你学会Linux数据流重定向
▪centos6.x已经安装的系统添加图形界面    ▪Linux查看CPU和内存使用情况    ▪win7问题解决,凭据管理器和无法访问,不允...
▪Dynamics CRM 2013 初体验(4):不再被支持的功...    ▪win7下制作ubuntu系统安装启动盘和U盘安装ubuntu...    ▪Linux cp -a用法
▪Windows Server时间服务器配置方法    ▪Tomcat+memcached实现Session共享    ▪Linux修改系统环境变量PATH路径的方法
▪Citrix 服务器虚拟化之二十七 XenApp6.5发布服务...    ▪搭建本地Ubuntu 镜像服务器    ▪Create local metadata resource of yum
▪tsm ANS0326E问题处理    ▪Windows SVN变化邮件通知(Python2.7实现)    ▪linux下的内核测试工具——perf使用简介
▪Nginx TCP Proxy模块的编译安装    ▪OSX: SSH密钥使用日记(2)    ▪OSX: SSH密钥使用日记(1)
▪Manually start and stop Oracle XE in Ubuntu    ▪Disable autostart of Oracle-xe in Ubuntu    ▪tar命令-linux
▪xtrabackup-2.1.2-611安装    ▪无废话ubuntu 13.4文件共享配置    ▪Unix文本处理工具之sed
▪hpux 操作系统 磁带备份与恢复    ▪HP DL360 G7通过iLO部署系统    ▪Redhat 6.0中VNC Server的配置方法
▪hpux 操作系统磁带备份与恢复    ▪用C++编程调用libvirt的API来创建KVM虚拟机    ▪hpux- hp小型机日常硬件故障处理case(一)
▪web集群时session同步的几种方法(统计)    ▪inux常用命令大全    ▪BAT 批处理实现循环备份N天文件夹
▪BIND9私有DNS服务器小环境搭建实验    ▪Exchange2013增量备份    ▪OSSEC Monitor your App log file
▪《深入理解Nginx》阅读与实践(三):使用upstre...    ▪如何给Fedora 15创建磁盘分区    ▪Packet Sniffer Code in C using sockets
▪Error, some other host already uses address    ▪修改uCOS_II以实现“优先级+时间片”联合调度    ▪weblogic开发模式与生产模式介绍
▪Wireshark 高级特性    ▪ubuntu13.04版本下安装RabbitVCS,类似windows的Tortoi...    ▪Apache 一台主机绑定多个域名及虚拟主机
▪linux安全设置    ▪RHEL双网卡绑定    ▪Linux shell if参数
▪Windows配置路由时可以指定源地址啦    ▪centos安装vim7.4    ▪S3C2410 实验三——块拷贝、字拷贝(寄存器的...
▪系统运维——日志处理    ▪ip_conntrack缓存neighbour    ▪关键在封装并发出了帧-IP冲突也无所谓
▪weblogic11g 安装——linux 无图形界面    ▪《数据通信与网络》笔记--SCTP    ▪《数据通信与网络》笔记--TCP中的拥塞控制
▪weblogic11g 安装集群 —— win2003 系统、单台主...    ▪weblogic11g 节点管理器 nodemanager    ▪Citrix 服务器虚拟化之二十六 应用程序虚拟化...
▪如何将windows下的文件夹挂载到linux虚拟机下    ▪在64位AIX6.1下安装SAP JCo    ▪Outlook启动时提示“找不到文件Outlook.pst文件”...
▪weblogic8.1 登陆5 ip 限制    ▪weblogic 内存 及 内存溢出    ▪手把手教你在Windows端搭建Redmine项目管理软件
▪启动及重新启动nginx,重启nginx后丢失nginx.pid问...    ▪Win7实现快速启动栏并实现靠左边的终极操作...    ▪《深入理解Nginx》阅读与实践(二):配置项...
▪显示grub引导菜单    ▪nagios监控主机    ▪linux各种数据流重定向
▪centOS安装chrome浏览器    ▪Slackware 14 安装完全指南    ▪SharePoint 2013的100个新功能之内容管理(三)
▪Citrix 服务器虚拟化之二十一 桌面虚拟化之部...    ▪[问,ask]ubuntu13.04安装vncserver后只显示桌面,不显...    ▪Win7中IIS出现“HTTP 错误 404.17 - Not Found 请求的...
▪CentOS快速安装最新版本的SaltStack    ▪CentOS 6.4 快速安装Nginx笔记    ▪磁盘管理——RAID 0
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3