本科毕业设计(论文)外文译文格式详解

合集下载

本科毕业论文外文翻译【范本模板】

本科毕业论文外文翻译【范本模板】

本科毕业论文外文翻译外文译文题目:不确定条件下生产线平衡:鲁棒优化模型和最优解解法学院:机械自动化专业:工业工程学号: 201003166045学生姓名: 宋倩指导教师:潘莉日期: 二○一四年五月Assembly line balancing under uncertainty: Robust optimization modelsand exact solution methodÖncü Hazır , Alexandre DolguiComputers &Industrial Engineering,2013,65:261–267不确定条件下生产线平衡:鲁棒优化模型和最优解解法安库·汉泽,亚历山大·多桂计算机与工业工程,2013,65:261–267摘要这项研究涉及在不确定条件下的生产线平衡,并提出两个鲁棒优化模型。

假设了不确定性区间运行的时间。

该方法提出了生成线设计方法,使其免受混乱的破坏。

基于分解的算法开发出来并与增强策略结合起来解决大规模优化实例.该算法的效率已被测试,实验结果也已经发表。

本文的理论贡献在于文中提出的模型和基于分解的精确算法的开发.另外,基于我们的算法设计出的基于不确定性整合的生产线的产出率会更高,因此也更具有实际意义。

此外,这是一个在装配线平衡问题上的开创性工作,并应该作为一个决策支持系统的基础。

关键字:装配线平衡;不确定性; 鲁棒优化;组合优化;精确算法1.简介装配线就是包括一系列在车间中进行连续操作的生产系统。

零部件依次向下移动直到完工。

它们通常被使用在高效地生产大量地标准件的工业行业之中。

在这方面,建模和解决生产线平衡问题也鉴于工业对于效率的追求变得日益重要。

生产线平衡处理的是分配作业到工作站来优化一些预定义的目标函数。

那些定义操作顺序的优先关系都是要被考虑的,同时也要对能力或基于成本的目标函数进行优化。

就生产(绍尔,1999)产品型号的数量来说,装配线可分为三类:单一模型(SALBP),混合模型(MALBP)和多模式(MMALBP)。

外文翻译指导记录怎么写

外文翻译指导记录怎么写

外文翻译指导记录怎么写外文翻译指导记录怎么写外文翻译、开题报告要求一套完整的毕业设计(论文)材料由外文翻译、开题报告和毕业设计(论文)正文三部分组成,按照统一的封面和格式编写。

和字体大小将按照学院的规定。

文本格式和书写要求(一)外文翻译通过文献综述和翻译,进一步提高外语运用能力,熟悉本专业几大外文书刊,了解国内外毕业设计(论文)信息和动态。

1、格式:(1)外文(译文前面附被翻译的外文原件复印件);(2)翻译成中文格式:①标题②署名(作者名)** 著译者:***③翻译正文④外文著录为了反映文稿的科学依据和译者尊重他人研究成果的严肃态度以及向读者提出有关信息的出处,要求译者按著录/题名/出版事项顺序排列注明:期刊——著者,题名,期刊名称,出版年,卷号(期号),起始页码。

书籍——著者,书名、版次(第一版不标注),出版地,出版者,出版年,起始页码。

2、内容要求:(1)阅读每位学生在文献查阅环节中,必须阅读5~10万个印刷符号的外语文献资料(最好阅读与课题或本专业有联系的内容),择其重要的翻译1~2万个印刷符号(约3000汉字)。

(2)翻译①标题应真实地反映出翻译外文的主体内容或原外文标题内容,一般控制在20个汉字以内。

可以用副标题对标题予以补充说明;②标题下方正中为外文作者署名;③外文翻译成中文的内容;④外文著录(二)开题报告1、格式:(1)课题名称;(2)学生、专业、指导教师和教学单位署名;(3)开题报告的正文撰写。

2、内容要求:(1)课题名称要求与毕业设计(论文)正文标题名称一致(一般控制在20个汉字以内,可以用副标题对标题予以补充说明)。

(2)学生、指导教师和教学单位署名:题目下方中间是学生签名,学生签名下方是专业名称,专业名称下方是指导老师签名,指导老师签名下方是教学单位签名(教学单位指学院)。

(3)开题报告的正文撰写要求包括(不少于2500字):①课题来源②研究目的和意义③研究的内容与途径④国内外研究现状与发展趋势通过提问和分析问题,综合前人文献提出的理论和事实,比较各种学术观点,明确所提问题的历史、现状和发展方向。

毕业论文和外文翻译要求内容

毕业论文和外文翻译要求内容

毕业论⽂和外⽂翻译要求内容沈阳农业⼤学本科⽣毕业论⽂(设计)撰写要求与格式规范(2008年7⽉修订)毕业论⽂(设计)是培养学⽣综合运⽤所学知识,分析和解决实际问题,提⾼实践能⼒和创造能⼒的重要教学环节,是记录科学研究成果的重要⽂献,也是学⽣申请学位的基本依据。

为保证本科⽣毕业论⽂(设计)质量,促进国内外学术交流,特制定《沈阳农业⼤学本科⽣毕业论⽂(设计)撰写要求与格式规范》。

⼀、毕业论⽂(设计)的基本结构毕业论⽂(设计)的基本结构是:1.前置部分:包括封⾯、任务书、选题审批表、指导记录、考核表、中(外)⽂摘要、关键词和⽬录等。

2.主体部分:包括前⾔、正⽂、参考⽂献、附录和致谢等。

⼆、毕业论⽂(设计)的内容要求(⼀)前置部分1.封⾯由学校统⼀设计。

2.毕业论⽂(设计)任务书毕业论⽂(设计)任务由各教学单位负责安排,并根据已确定的论⽂(设计)课题下达给学⽣,作为学⽣和指导教师共同从事毕业论⽂(设计)⼯作的依据。

毕业论⽂(设计)任务书的内容包括课题名称、学⽣姓名、下发⽇期、论⽂(设计)的主要内容与要求、毕业论⽂(设计)的⼯作进度和起⽌时间等。

3.论⽂(设计)选题审批表4.论⽂(设计)指导记录5.毕业论⽂(设计)考核表指导教师评语、评阅⼈评审意见分别由指导教师和评阅⼈填写,答辩委员会意见、评定成绩以及是否授予学⼠学位的建议等材料应由答辩委员会填写。

6.中(外)⽂摘要摘要是毕业论⽂(设计)研究内容及结论的简明概述,具有独⽴性和⾃含性。

其内容包括论⽂(设计)的主要内容、试(实)验⽅法、结果、结论和意义等。

中⽂摘要不少于400字;英⽂摘要必须⽤第三⼈称,采⽤现在时态编写。

7.关键词关键词均应为专业名词(或词组),注意专业术语的通⽤性,数量⼀般为3-5个;外⽂关键词与中⽂关键词⼀⼀对应。

8.⽬录⽬录由论⽂(设计)的章、节、附录等序号、名称和页码组成。

(⼆)主体部分1.前⾔(引⾔或序⾔)简要说明本项研究课题的提出及其研究意义(学术、实⽤价值),本项研究的前⼈⼯作基础及其欲深⼊研究的⽅向和思路、⽅法以及要解决的主要问题等。

毕业设计(论文)外文资料和译文格式要求(模板)

毕业设计(论文)外文资料和译文格式要求(模板)

成都东软学院外文资料和译文格式要求一、译文必须采用计算机输入、打印,幅面A4。

外文资料原文(复印或打印)在前,译文在后,于左侧装订。

二、具体要求1、至少翻译一篇内容与所选课题相关的外文文献。

2、译文汉字字数不少于4000字。

3、正文格式要求:宋体五号字。

译文格式参见《译文格式要求》,宋体五号字,单倍行距。

纸张纸张为A4纸,页边距上2.54cm、下2.54cm、左3.17cm、右3.17cm。

装订外文资料原文(复印或打印)在前,译文在后封面封面的专业、班级、姓名、学号等信息要全部填写正确。

封面指导教师必须为讲师以上职称,若助教则需要配备一名讲师协助指导。

讲师在前,助教在后。

指导教师姓名后面空一个中文空格,加职称。

页眉页眉说明宋体小五,左端“XX学院毕业设计(论文)”,右端“译文”。

页眉中的学院名称要与封面学院名称一致。

字数本科4000字。

附:外文资料和译文封面、空白页成都东软学院外文资料和译文专业:软件工程移动互联网应用开发班级:2班姓名:罗荣昆学号:12310420216指导教师:2015年 12月 8日Android page layoutUsing XML-Based LayoutsW hile it is technically possible to create and attach widgets to our activity purely through Java code, the way we did in Chapter 4, the more common approach is to use an XML-based layout file. Dynamic instantiation of widgets is reserved for more complicated scenarios, where the widgets are not known at compile-time (e g., populating a column of radio buttons based on data retrieved off the Internet).With that in mind, it’s time to break out the XML and learn how to lay out Android activities that way.What Is an XML-Based Layout?As the name suggests, an XML-based layout is a specification of widgets’ relationships to each other—and to their containers (more on this in Chapter 7)—encoded in XML format. Specifi cally, Android considers XML-based layouts to be resources, and as such layout files are stored in the res/layout directory inside your Android project.Each XML file contains a tree of elements specifying a layout of widgets and their containers that make up one view hierarchy. The attributes of the XML elements are properties, describing how a widget should look or how a container should behave. For example, if a Button element has an attribute value of android:textStyle = "bold", that means that the text appearing on the face of the button should be rendered in a boldface font style.Android’s SDK ships with a tool (aapt) which uses the layouts. This tool should be automatically invoked by your Android tool chain (e.g., Eclipse, Ant’s build.xml). Of particular importance to you as a developer is that aapt generates the R.java source file within your project, allowing you to access layouts and widgets within those layouts directly from your Java code. Why Use XML-Based Layouts?Most everything you do using XML layout files can be achieved through Java code. For example, you could use setTypeface() to have a button render its textin bold, instead of using a property in an XML layout. Since XML layouts are yet another file for you to keep track of, we need good reasons for using such files.Perhaps the biggest reason is to assist in the creation of tools for view definition, such as a GUI builder in an IDE like Eclipse or a dedicated Android GUI designer like DroidDraw1. Such GUI builders could, in principle, generate Java code instead of XML. The challenge is re-reading the UI definition to support edits—that is far simpler if the data is in a structured format like XML than in a programming language. Moreover, keeping generated XML definitions separated from hand-written Java code makes it less likely that somebody’s custom-crafted source will get clobbered by accident when the generated bits get re-generated. XML forms a nice middle ground between something that is easy for tool-writers to use and easy for programmers to work with by hand as needed.Also, XML as a GUI definition format is becoming more commonplace. Microsoft’s XAML2, Adobe’s Flex3, and Mozilla’s XUL4 all take a similar approach to that of Android: put layout details in an XML file and put programming smarts in source files (e.g., JavaScript for XUL). Many less-well-known GUI frameworks, such as ZK5, also use XML for view definition. While “following the herd” is not necessarily the best policy, it does have the advantage of helping to ease the transition into Android from any other XML-centered view description language. OK, So What Does It Look Like?Here is the Button from the previous chapter’s sample application, converted into an XMLlayout file, found in the Layouts/NowRedux sample project. This code sample along with all others in this chapter can be found in the Source Code area of .<?xml version="1.0" encoding="utf-8"?><Button xmlns:android="/apk/res/android"android:id="@+id/button"android:text=""android:layout_width="fill_parent"android:layout_height="fill_parent"/>The class name of the widget—Button—forms the name of the XML element. Since Button is an Android-supplied widget, we can just use the bare class name. If you create your own widgets as subclasses of android.view.View, you would need to provide a full package declara tion as well.The root element needs to declare the Android XML namespace:xmlns:android="/apk/res/android"All other elements will be children of the root and will inherit that namespace declaration.Because we want to reference this button from our Java code, we need to give it an identifier via the android:id attribute. We will cover this concept in greater detail later in this chapter.The remaining attributes are properties of this Button instance:• android:text indicates the initial text to be displayed on the button face (in this case, an empty string)• android:layout_width and android:layout_height tell Android to have the button’swidth and height fill the “parent”, in this case the entire screen—these attributes will be covered in greater detail in Chapter 7.Since this single widget is the only content in our activity, we only need this single element. Complex UIs will require a whole tree of elements, representing the widgets and containers that control their positioning. All the remaining chapters of this book will use the XML layout form whenever practical, so there are dozens of other examples of more complex layouts for you to peruse from Chapter 7 onward.What’s with the @ Signs?Many widgets and containers only need to appear in the XML layout file and do not need to be referenced in your Java code. For example, a static label (TextView) frequently only needs to be in the layout file to indicate where it should appear. These sorts of elements in the XML file do not need to have the android:id attribute to give them a name.Anything you do want to use in your Java source, though, needs an android:id.The convention is to use @+id/... as the id value, where the ... represents your locally unique name for the widget in question. In the XML layout example in the preceding section, @+id/button is the identifier for the Button widget.Android provides a few special android:id values, of the form @android:id/.... We will see some of these in various chapters of this book, such as Chapters 8 and 10.We Attach These to the Java How?Given that you have painstakingly set up the widgets and containers in an XML layout filenamed main.xml stored in res/layout, all you need is one statement in your activity’s onCreate() callback to use that layout:setContentView(yout.main);This is the same setContentView() we used earlier, passing it an instance of a View subclass (in that case, a Button). The Android-built view, constructed from our layout, is accessed from that code-generated R class. All of the layouts are accessible under yout, keyed by the base name of the layout file—main.xml results in yout.main.To access our identified widgets, use findViewById(), passing in the numeric identifier of the widget in question. That numeric identifier was generated by Android in the R class asR.id.something (where something is the specific widget you are seeking). Those widgets are simply subclasses of View, just like the Button instance we created in Chapter 4.The Rest of the StoryIn the original Now demo, the button’s face would show the current time, which would reflect when the button was last pushed (or when the activity was first shown, if the button had not yet been pushed).Most of that logic still works, even in this revised demo (NowRedux). However,rather than instantiating the Button in our activity’s onCreate() callback, we can reference the one from the XML layout:package youts;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button; import java.util.Date;public class NowRedux extends Activity implements View.OnClickListener { Button btn;@Overridepublic void onCreate(Bundle icicle) { super.onCreate(icicle);setContentView(yout.main);btn=(Button)findViewById(R.id.button);btn.setOnClickListener(this);upd ateTime();}public void onClick(View view) { updateTime();}private void updateTime() {btn.setText(new Date().toString()); }}The first difference is that rather than setting the content view to be a view we created in Java code, we set it to reference the XML layout (setContentView(yout.main)). The R.java source file will be updated when we rebuild this project to include a reference to our layout file (stored as main.xml in our project’s res/l ayout directory).The other difference is that we need to get our hands on our Button instance, for which we use the findViewById() call. Since we identified our button as @+id/button, we can reference the button’s identifier as R.id.button. Now, with the Button instance in hand, we can set the callback and set the label as needed.As you can see in Figure 5-1, the results look the same as with the originalNow demo.Figure 5-1. The NowRedux sample activity Employing Basic WidgetsE very GUI toolkit has some basic widgets: fields, labels, buttons, etc. Android’s toolkit is no different in scope, and the basic widgets will provide a good introduction as to how widgets work in Android activities.Assigning LabelsThe simplest widget is the label, referred to in Android as a TextView. Like in most GUI toolkits, labels are bits of text not editable directly by users. Typically, they are used to identify adjacent widgets (e.g., a “Name:” label before a field where one fills in a name).In Java, you can create a label by creating a TextView instance. More commonly, though, you will create labels in XML layout files by adding a TextView element to the layout, with an android:text property to set the value of the label itself. If you need to swap labels based on certain criteria, such as internationalization, you may wish to use a resource reference in the XML instead, as will be described in Chapter 9. TextView has numerous other properties of relevance for labels, such as:• android:typeface to set the typeface to use for the label (e.g., monospace) • android:textStyle to indicate that the typeface should be made bold (bold), italic (italic),or bold and italic (bold_italic)• android:textColor to set the color of the label’s text, in RGB hex format (e.g., #FF0000 for red)For example, in the Basic/Label project, you will find the following layout file:<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android=/apk/res/androidandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="You were expecting something profound?" />As you can see in Figure 6-1, just that layout alone, with the stub Java source provided by Android’s p roject builder (e.g., activityCreator), gives you the application.Figure 6-1. The LabelDemo sample applicationButton, Button, Who’s Got the Button?We’ve already seen the use of the Button widget in Chapters 4 and 5. As it turns out, Button is a subclass of TextView, so everything discussed in the preceding section in terms of formatting the face of the button still holds. Fleeting ImagesAndroid has two widgets to help you embed images in your activities: ImageView and ImageButton. As the names suggest, they are image-based analogues to TextView and Button, respectively.Each widget takes an android:src attribute (in an XML layout) to specify what picture to use. These usually reference a drawable resource, described in greater detail in the chapter on resources. You can also set the image content based on a Uri from a content provider via setImageURI().ImageButton, a subclass of ImageView, mixes in the standard Button behaviors, for responding to clicks and whatnot.For example, take a peek at the main.xml layout from the Basic/ImageView sample project which is found along with all other code samples at : <?xml version="1.0" encoding="utf-8"?><ImageView xmlns:android=/apk/res/androidandroid:id="@+id/icon"android:layout_width="fill_parent"android:layout_height="fill_parent"android:adjustViewBounds="true"android:src="@drawable/molecule" />The result, just using the code-generated activity, is shown in Figure 6-2.Figure 6-2. The ImageViewDemo sample applicationFields of Green. Or Other Colors.Along with buttons and labels, fields are the third “anchor” of most GUI toolkits. In Android, they are implemented via the EditText widget, which is a subclass of the TextView used for labels.Along with the standard TextView properties (e.g., android:textStyle), EditText has many others that will be useful for you in constructing fields, including:• android:autoText, to control if the fie ld should provide automatic spelling assistance• android:capitalize, to control if the field should automatically capitalize the first letter of entered text (e.g., first name, city) • android:digits, to configure the field to accept only certain digi ts • android:singleLine, to control if the field is for single-line input or multiple-line input (e.g., does <Enter> move you to the next widget or add a newline?)Beyond those, you can configure fields to use specialized input methods, such asandroid:numeric for numeric-only input, android:password for shrouded password input,and android:phoneNumber for entering in phone numbers. If you want to create your own input method scheme (e.g., postal codes, Social Security numbers), you need to create your own implementation of the InputMethod interface, then configure the field to use it via android: inputMethod.For example, from the Basic/Field project, here is an XML layout file showing an EditText:<?xml version="1.0" encoding="utf-8"?><EditTextxmlns:android=/apk/res/androidandroid:id="@+id/field"android:layout_width="fill_parent"android:layout_height="fill_parent"android:singleLine="false" />Note that android:singleLine is false, so users will be able to enter in several lines of text. For this project, the FieldDemo.java file populates the input field with some prose:package monsware.android.basic;import android.app.Activity;import android.os.Bundle;import android.widget.EditText;public class FieldDemo extends Activity { @Overridepublic void onCreate(Bundle icicle) { super.onCreate(icicle);setContentView(yout.main);EditText fld=(EditText)findViewById(R.id.field);fld.setText("Licensed under the Apache License, Version 2.0 " + "(the \"License\"); you may not use this file " + "except in compliance with the License. You may " + "obtain a copy of the License at " +"/licenses/LICENSE-2.0");}}The result, once built and installed into the emulator, is shown in Figure 6-3.Figure 6-3. The FieldDemo sample applicationNote Android’s emulator only allows one application in the launcher per unique Java package. Since all the demos in this chapter share the monsware.android.basic package, you will only see one of these demos in your emulator’s launcher at any one time.Another flavor of field is one that offers auto-completion, to help users supply a value without typing in the whole text. That is provided in Android as the AutoCompleteTextView widget and is discussed in Chapter 8.Just Another Box to CheckThe classic checkbox has two states: checked and unchecked. Clicking the checkbox toggles between those states to indicate a choice (e.g., “Ad d rush delivery to my order”). In Android, there is a CheckBox widget to meet this need. It has TextView as an ancestor, so you can use TextView properties likeandroid:textColor to format the widget. Within Java, you can invoke: • isChecked() to determi ne if the checkbox has been checked• setChecked() to force the checkbox into a checked or unchecked state • toggle() to toggle the checkbox as if the user checked itAlso, you can register a listener object (in this case, an instance of OnCheckedChangeListener) to be notified when the state of the checkbox changes.For example, from the Basic/CheckBox project, here is a simple checkbox layout:<?xml version="1.0" encoding="utf-8"?><CheckBox xmlns:android="/apk/res/android"android:id="@+id/check"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="This checkbox is: unchecked" />The corresponding CheckBoxDemo.java retrieves and configures the behavior of the checkbox:public class CheckBoxDemo extends Activityimplements CompoundButton.OnCheckedChangeListener { CheckBox cb;@Overridepublic void onCreate(Bundle icicle) { super.onCreate(icicle);setContentView(yout.main);cb=(CheckBox)findViewById(R.id.check);cb.setOnCheckedChangeListener(this);}public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {if (isChecked) {cb.setText("This checkbox is: checked");}else {cb.setText("This checkbox is: unchecked");}}}Note that the activity serves as its own listener for checkbox state changes since it imple ments the OnCheckedChangeListener interface (via cb.setOnCheckedChangeListener(this)). The callback for the listener is onCheckedChanged(), which receives the checkbox whose state has changed and what the new state is. In this case, we update the text of the checkbox to reflect what the actual box contains.The result? Clicking the checkbox immediately updates its text, as you can see in Figures 6-4 and 6-5.Figure 6-4. The CheckBoxDemo sample application, with the checkbox uncheckedFigure 6-5. The same application, now with the checkbox checkedTurn the Radio UpAs with other implementations of radio buttons in other toolkits, Android’s radio buttons are two-state, like checkboxes, but can be grouped such that only one radio button in the group can be checked at any time.Like CheckBox, RadioButton inherits from CompoundButton, which in turn inherits fromTextView. Hence, all the standard TextView properties for font face, style, color, etc., are available for controlling the look of radio buttons. Similarly, you can call isChecked() on a RadioButton to see if it is selected, toggle() to select it, and so on, like you can with a CheckBox.Most times, you will want to put your RadioButton widgets inside of aRadioGroup. The RadioGroup indicates a set of radio buttons whose state is tied, meaning only one button out of the group can be selected at any time. If you assign an android:id to your RadioGroup in your XML layout, you can access the group from your Java code and invoke:• check() to check a specific radio button via its ID (e.g., group.check(R.id.radio1))• clearCheck() to clear all radio buttons, so none in the group are checked• getCheckedRadioButtonId() to get the ID of the currently-checked radio button (or -1 if none are checked)For example, from the Basic/RadioButton sample application, here is an XML layout showing a RadioGroup wrapping a set of RadioButton widgets: <?xml version="1.0" encoding="utf-8"?> <RadioGroupxmlns:android=/apk/res/androidandroid:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent" ><RadioButton android:id="@+id/radio1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Rock" /><RadioButton android:id="@+id/radio2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Scissors" /><RadioButton android:id="@+id/radio3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Paper" /></RadioGroup>Figure 6-6 shows the result using the stock Android-generated Java forthe project and this layout.Figure 6-6. The RadioButtonDemo sample application Note that the radio button group is initially set to be completely unchecked at the outset. To pre-set one of the radio buttons to be checked, use either setChecked() on the RadioButton or check() on the RadioGroup from within your onCreate() callback in your activity.It’s Quite a ViewAll widgets, including the ones previously shown, extend View, and as such give all widgets an array of useful properties and methods beyond those already described.Useful PropertiesSome of the properties on View most likely to be used include:• Controls the focus sequence:• android:nextFocusDown• android:nextFocusLeft• android:nextFocusRight• android:nextFocusUp• android:visibility, which controls wheth er the widget is initially visible• android:background, which typically provides an RGB color value (e.g., #00FF00 for green) to serve as the background for the widgetUseful MethodsYou can toggle whether or not a widget is enabled via setEnabled() and see if it is enabled via isEnabled(). One common use pattern for this is to disable some widgets based on a CheckBox or RadioButton selection.You can give a widget focus via requestFocus() and see if it is focused via isFocused(). You might use this in concert with disabling widgets as previously mentioned, to ensure the proper widget has the focus once your disabling operation is complete.To help navigate the tree of widgets and containers that make up an activity’s overall view, you can use:• get Parent() to find the parent widget or container• findViewById() to find a child widget with a certain ID• getRootView() to get the root of the tree (e.g., what you provided to the activity via setContentView())Android 页面布局使用XML进行布局虽然纯粹通过Java代码在activity上创建和添加部件,在技术上是可行的,我们在第4章中做的一样,更常见的方法是使用一种基于XML的布局文件。

山东建筑大学本科毕业设计说明书外文文献及翻译格式模版1.doc

山东建筑大学本科毕业设计说明书外文文献及翻译格式模版1.doc

山东建筑大学本科毕业设计说明书外文文献及翻译格式模版1附件3:(本科毕业论文)文献、资料题目:院(部)专班姓名:张三学号:指导教师:张九光翻译日期:2005.6.30,the National Institute of Standards and Technology (NIST) has been working to develop a new encryption standard to keep government information secure .The organization is in the final stages of an open process of selecting one or more algorithms ,or data-scrambling formulas ,for the new Advanced Encryption Standard (AES) and plans to make adecision by late summer or early fall .The standard is slated to go into effect next year .AES is intended to be a stronger ,more efficient successor to Triple Data Encryption Standard (3DES),which replaced the aging DES ,which was cracked in less than three days in July 1998.“Until we have the AES ,3DES will still offer protection for years to come .So there is no need to immediately switch over ,”says Edward Roback ,acting chief of the computer security division at NIST and chairman of the AES selection committee .“What AES will offer is a more efficient algorithm .It will be a federal standard ,but it will be widely implemented in the IT community .”According to Roback ,efficiency of the proposed algorithms is measured by how fast they can encrypt and decrypt information ,how fast they can present an encryption key and how much information they can encrypt .The AES review committee is also looking at how much space the algorithm takes up on a chip and how much memory it requires .Roback says the selection of a more efficient AES will also result in cost savings and better use of resources .“DES w as designed for hardware implementations ,and we are now living in a world of much more efficient software ,and we have learned an awful lot about the design of algorithms ,”says Roback .“When you start multiplying this with the billions of implementations done daily ,the saving on overhead on the networks will be enormous .”……山东建筑大学毕业设计(或毕业论文,二选一)外文文献及译文- 1 -以确保政府的信息安全。

毕业论文翻译标准格式

毕业论文翻译标准格式

毕业论文翻译标准格式
在进行毕业论文翻译时,遵循一定的标准格式是非常重要的。

一个符合标准格
式的翻译文档不仅能够提高毕业论文的质量,还能够让读者更加容易理解和接受你的论文内容。

下面就为大家介绍一些毕业论文翻译的标准格式。

首先,毕业论文翻译的标准格式要求文档整体格式规范,包括字体、字号、行
间距等。

一般来说,翻译文档的字体选择应该是宋体或者Time New Roman,字号
一般选择小四号。

行间距一般选择1.5倍行距,这样能够使得整个文档看起来更加
清晰、整洁。

其次,毕业论文翻译的标准格式要求文档的排版整齐,包括页边距、标题格式等。

一般来说,翻译文档的页边距设置为上下左右各2.5厘米,这样能够使得整个
文档看起来更加美观。

标题格式一般选择居中、加粗,这样能够使得标题更加醒目。

再次,毕业论文翻译的标准格式要求文档的段落格式统一,包括首行缩进、段
落间距等。

一般来说,翻译文档的段落应该采用首行缩进的格式,每个段落之间要有一定的间距,这样能够使得整个文档看起来更加整齐、清晰。

最后,毕业论文翻译的标准格式还要求文档的标点符号使用规范、语法正确。

在翻译文档中,标点符号的使用要符合语法规范,不能出现使用错误的情况。

同时,语法要求也非常重要,翻译文档中的语法要求要符合标准,不能出现语法错误的情况。

综上所述,毕业论文翻译的标准格式对于提高论文质量非常重要。

只有遵循一
定的标准格式,才能够使得翻译文档更加规范、整洁,让读者更加容易理解和接受你的论文内容。

希望大家在进行毕业论文翻译时,能够严格遵循标准格式,提高翻译文档的质量。

毕业设计(论文)外文原文及译文

毕业设计(论文)外文原文及译文

毕业设计(论文)外文原文及译文一、外文原文MCUA microcontroller (or MCU) is a computer-on-a-chip. It is a type of microcontroller emphasizing self-sufficiency and cost-effectiveness, in contrast to a general-purpose microprocessor (the kind used in a PC).With the development of technology and control systems in a wide range of applications, as well as equipment to small and intelligent development, as one of the single-chip high-tech for its small size, powerful, low cost, and other advantages of the use of flexible, show a strong vitality. It is generally better compared to the integrated circuit of anti-interference ability, the environmental temperature and humidity have better adaptability, can be stable under the conditions in the industrial. And single-chip widely used in a variety of instruments and meters, so that intelligent instrumentation and improves their measurement speed and measurement accuracy, to strengthen control functions. In short,with the advent of the information age, traditional single- chip inherent structural weaknesses, so that it show a lot of drawbacks. The speed, scale, performance indicators, such as users increasingly difficult to meet the needs of the development of single-chip chipset, upgrades are faced with new challenges.The Description of AT89S52The AT89S52 is a low-power, high-performance CMOS 8-bit microcontroller with 8K bytes of In-System Programmable Flash memory. The device is manufactured using Atmel's high-density nonvolatile memory technology and is compatible with the industry-standard 80C51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with In-System Programmable Flash on a monolithic chip, the Atmel AT89S52 is a powerful microcontroller which provides a highly-flexible and cost-effective solution to many embedded control applications.The AT89S52 provides the following standard features: 8K bytes ofFlash, 256 bytes of RAM, 32 I/O lines, Watchdog timer, two data pointers, three 16-bit timer/counters, a six-vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89S52 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power-down mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next interrupt or hardware reset.Features• Compatible with MCS-51® Products• 8K Bytes of In-System Programmable (ISP) Flash Memory– Endurance: 1000 Write/Erase Cycles• 4.0V to 5.5V Operating Range• Fully Static Operation: 0 Hz to 33 MHz• Three-level Program Memory Lock• 256 x 8-bit Internal RAM• 32 Programmable I/O Lines• Three 16-bit Timer/Counters• Eight Interrupt Sources• Full Duplex UART Serial Channel• Low-power Idle and Power-down Modes• Interrupt Recovery from Power-down Mode• Watchdog Timer• Dual Data Pointer• Power-off FlagPin DescriptionVCCSupply voltage.GNDGround.Port 0Port 0 is an 8-bit open drain bidirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs.Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode, P0 has internal pullups.Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pullups are required during program verification.Port 1Port 1 is an 8-bit bidirectional I/O port with internal pullups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups.In addition, P1.0 and P1.1 can be configured to be the timer/counter 2 external count input (P1.0/T2) and the timer/counter 2 trigger input (P1.1/T2EX), respectively.Port 1 also receives the low-order address bytes during Flash programming and verification.Port 2Port 2 is an 8-bit bidirectional I/O port with internal pullups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pullups.Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @ DPTR). In this application, Port 2 uses strong internal pull-ups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register.Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.Port 3Port 3 is an 8-bit bidirectional I/O port with internal pullups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups.Port 3 also serves the functions of various special features of the AT89S52, as shown in the following table.Port 3 also receives some control signals for Flash programming and verification.RSTReset input. A high on this pin for two machine cycles while the oscillator is running resets the device. This pin drives High for 96 oscillator periods after the Watchdog times out. The DISRTO bit in SFR AUXR (address 8EH) can be used to disable this feature. In the default state of bit DISRTO, the RESET HIGH out feature is enabled.ALE/PROGAddress Latch Enable (ALE) is an output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming.In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory.If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.PSENProgram Store Enable (PSEN) is the read strobe to external program memory. When the AT89S52 is executing code from external program memory, PSENis activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.EA/VPPExternal Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset. EA should be strapped to VCC for internal program executions.This pin also receives the 12-volt programming enable voltage (VPP) during Flash programming.XTAL1Input to the inverting oscillator amplifier and input to the internal clock operating circuit.XTAL2Output from the inverting oscillator amplifier.Special Function RegistersNote that not all of the addresses are occupied, and unoccupied addresses may not be implemented on the chip. Read accesses to these addresses will in general return random data, and write accesses will have an indeterminate effect.User software should not write 1s to these unlisted locations, since they may be used in future products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0.Timer 2 Registers:Control and status bits are contained in registers T2CON and T2MOD for Timer 2. The register pair (RCAP2H, RCAP2L) are the Capture/Reload registers for Timer 2 in 16-bit capture mode or 16-bit auto-reload mode.Interrupt Registers:The individual interrupt enable bits are in the IE register. Two priorities can be set for each of the six interrupt sources in the IP register.Dual Data Pointer Registers: To facilitate accessing both internal and external data memory, two banks of 16-bit Data Pointer Registers areprovided: DP0 at SFR address locations 82H-83H and DP1 at 84H-85H. Bit DPS = 0 in SFR AUXR1 selects DP0 and DPS = 1 selects DP1. The user should always initialize the DPS bit to the appropriate value before accessing the respective Data Pointer Register.Power Off Flag:The Power Off Flag (POF) is located at bit 4 (PCON.4) in the PCON SFR. POF is set to “1” during power up. It can be set and rest under software control and is not affected by reset.Memory OrganizationMCS-51 devices have a separate address space for Program and Data Memory. Up to 64K bytes each of external Program and Data Memory can be addressed.Program MemoryIf the EA pin is connected to GND, all program fetches are directed to external memory. On the AT89S52, if EA is connected to VCC, program fetches to addresses 0000H through 1FFFH are directed to internal memory and fetches to addresses 2000H through FFFFH are to external memory.Data MemoryThe AT89S52 implements 256 bytes of on-chip RAM. The upper 128 bytes occupy a parallel address space to the Special Function Registers. This means that the upper 128 bytes have the same addresses as the SFR space but are physically separate from SFR space.When an instruction accesses an internal location above address 7FH, the address mode used in the instruction specifies whether the CPU accesses the upper 128 bytes of RAM or the SFR space. Instructions which use direct addressing access of the SFR space. For example, the following direct addressing instruction accesses the SFR at location 0A0H (which is P2).MOV 0A0H, #dataInstructions that use indirect addressing access the upper 128 bytes of RAM. For example, the following indirect addressing instruction, where R0 contains 0A0H, accesses the data byte at address 0A0H, rather than P2 (whose address is 0A0H).MOV @R0, #dataNote that stack operations are examples of indirect addressing, so the upper 128 bytes of data RAM are available as stack space.Timer 0 and 1Timer 0 and Timer 1 in the AT89S52 operate the same way as Timer 0 and Timer 1 in the AT89C51 and AT89C52.Timer 2Timer 2 is a 16-bit Timer/Counter that can operate as either a timer or an event counter. The type of operation is selected by bit C/T2 in the SFR T2CON (shown in Table 2). Timer 2 has three operating modes: capture, auto-reload (up or down counting), and baud rate generator. The modes are selected by bits in T2CON.Timer 2 consists of two 8-bit registers, TH2 and TL2. In the Timer function, the TL2 register is incremented every machine cycle. Since a machine cycle consists of 12 oscillator periods, the count rate is 1/12 of the oscillator frequency.In the Counter function, the register is incremented in response to a1-to-0 transition at its corresponding external input pin, T2. In this function, the external input is sampled during S5P2 of every machine cycle. When the samples show a high in one cycle and a low in the next cycle, the count is incremented. The new count value appears in the register during S3P1 of the cycle following the one in which the transition was detected. Since two machine cycles (24 oscillator periods) are required to recognize a 1-to-0 transition, the maximum count rate is 1/24 of the oscillator frequency. To ensure that a given level is sampled at least once before it changes, the level should be held for at least one full machine cycle.InterruptsThe AT89S52 has a total of six interrupt vectors: two external interrupts (INT0 and INT1), three timer interrupts (Timers 0, 1, and 2), and the serial port interrupt. These interrupts are all shown in Figure 10.Each of these interrupt sources can be individually enabled or disabledby setting or clearing a bit in Special Function Register IE. IE also contains a global disable bit, EA, which disables all interrupts at once.Note that Table 5 shows that bit position IE.6 is unimplemented. In the AT89S52, bit position IE.5 is also unimplemented. User software should not write 1s to these bit positions, since they may be used in future AT89 products. Timer 2 interrupt is generated by the logical OR of bits TF2 and EXF2 in register T2CON. Neither of these flags is cleared by hardware when the service routine is vectored to. In fact, the service routine may have to determine whether it was TF2 or EXF2 that generated the interrupt, and that bit will have to be cleared in software.The Timer 0 and Timer 1 flags, TF0 and TF1, are set at S5P2 of the cycle in which the timers overflow. The values are then polled by the circuitry in the next cycle. However, the Timer 2 flag, TF2, is set at S2P2 and is polled in the same cycle in which the timer overflows.二、译文单片机单片机即微型计算机,是把中央处理器、存储器、定时/计数器、输入输出接口都集成在一块集成电路芯片上的微型计算机。

毕业设计论文中英文翻译要求(最新)

毕业设计论文中英文翻译要求(最新)

附件1(毕业设计一)材料科学与工程学院毕业实习环节外文翻译要求一、翻译论文的选择:1、与自己毕业设计相关的外文参考文献2、该译文可以作为设计论文中文献综述中的部分内容;3、原则上选取的英语原文不超过5页。

二、译文结构内容1、作者,英文原文题目,期刊名称,卷期号,年份,起止页码,2、文章题目,作者(保持英文,不需翻译),作者单位(英文不变)3、摘要,关键词4、正文部分:引言,试验过程,结果与讨论,结论,参考文献(保持原文状态)5、译文中的图标需要翻译,图可以复印后粘贴或扫描插入三、译文和原文统一装订在一起,独立与毕业论文一起上交四、几点附属说明1 文章所在期刊的期刊名及相关信息不要翻译。

2 文章的作者,作者的单位,地址,下注的通讯作者的情况,参考文献不要翻译。

3文章的题目,摘要,关键词,及正文都要按照原文的顺序来翻译。

4文章中图表翻译示例如下:此为翻译前的表格:此为翻译后的表格:表1 微波和常规方法加工的粉体金属样品的性能Table 1 Properties of microwave and conventionally processedpowdered metal samplesMW 代表微波烧结;conv代表常规方法。

大部分微波烧结的样品的断裂模量比常规方法烧结的要高。

许多微波烧结的样品的密度也是高于常规方法烧成的样品。

MW, microwave processed; conv., conventionally processed. Themodulus of rupture(MOR) of most microwave-processed samples ishigher than that of the conventional samples. The densities of manymicrowave-processed samples are also higher than those ofconventional samples.即表头和注释中英文都要。

本科生英文文献翻译格式要求

本科生英文文献翻译格式要求

本科生英文文献翻译格式要求
翻译英文文献是本科生学习和研究的重要环节之一、在进行英文文献
翻译时,要求严谨、规范,以确保翻译结果准确、准确。

以下是本科生英
文文献翻译的一般格式要求:
1.标题:在翻译文献的标题处,应准确、简洁地翻译出原文的标题。

翻译后的标题应该置于原文标题的下方,并用加粗的字体显示。

4.主体内容:主体内容是英文文献的核心部分,应该全面、准确地翻译。

在翻译主体内容时,应注意不要改变原文的结构和意义,并尽量使用
符合学科特点的术语和词汇。

5.结论:结论是对整篇文献的总结和归纳。

翻译结论时,应准确地译
出原文的意思,并清晰地表达出来。

6.引用文献:如果原文中引用了其他文献,应该在翻译文献中注明出处,并按照相应的格式进行引用。

常见的引用格式包括APA、MLA等。

总体而言,整篇文献的翻译应该准确、准确地传达原文的意义,同时
符合学术规范和格式要求。

在翻译过程中,应注意用词准确、语法正确,
尽量避免出错。

此外,还需要注意文献的语言风格,以确保翻译结果通顺、自然。

毕业设计(论文)外文资料翻译(学生用)

毕业设计(论文)外文资料翻译(学生用)

毕业设计外文资料翻译学院:信息科学与工程学院专业:软件工程姓名: XXXXX学号: XXXXXXXXX外文出处: Think In Java (用外文写)附件: 1.外文资料翻译译文;2.外文原文。

附件1:外文资料翻译译文网络编程历史上的网络编程都倾向于困难、复杂,而且极易出错。

程序员必须掌握与网络有关的大量细节,有时甚至要对硬件有深刻的认识。

一般地,我们需要理解连网协议中不同的“层”(Layer)。

而且对于每个连网库,一般都包含了数量众多的函数,分别涉及信息块的连接、打包和拆包;这些块的来回运输;以及握手等等。

这是一项令人痛苦的工作。

但是,连网本身的概念并不是很难。

我们想获得位于其他地方某台机器上的信息,并把它们移到这儿;或者相反。

这与读写文件非常相似,只是文件存在于远程机器上,而且远程机器有权决定如何处理我们请求或者发送的数据。

Java最出色的一个地方就是它的“无痛苦连网”概念。

有关连网的基层细节已被尽可能地提取出去,并隐藏在JVM以及Java的本机安装系统里进行控制。

我们使用的编程模型是一个文件的模型;事实上,网络连接(一个“套接字”)已被封装到系统对象里,所以可象对其他数据流那样采用同样的方法调用。

除此以外,在我们处理另一个连网问题——同时控制多个网络连接——的时候,Java内建的多线程机制也是十分方便的。

本章将用一系列易懂的例子解释Java的连网支持。

15.1 机器的标识当然,为了分辨来自别处的一台机器,以及为了保证自己连接的是希望的那台机器,必须有一种机制能独一无二地标识出网络内的每台机器。

早期网络只解决了如何在本地网络环境中为机器提供唯一的名字。

但Java面向的是整个因特网,这要求用一种机制对来自世界各地的机器进行标识。

为达到这个目的,我们采用了IP(互联网地址)的概念。

IP以两种形式存在着:(1) 大家最熟悉的DNS(域名服务)形式。

我自己的域名是。

所以假定我在自己的域内有一台名为Opus的计算机,它的域名就可以是。

本科毕业设计(论文)外文翻译

本科毕业设计(论文)外文翻译
1.引言
重金属污染存在于很多工业的废水中,如电镀,采矿,和制革。
2.实验
2.1化学药剂
本实验所使用的药剂均为分析纯,如无特别说明均购买自日本片山化工。铅离子储备液通过溶解Pb(NO3)2配制,使用时稀释到需要的浓度。HEPES缓冲液购买自Sigma–Aldrich。5 mol/L的HCl和NaOH用来调整pH。
附5
华南理工大学
本科毕业设计(论文)翻译
班级2011环境工程一班
姓名陈光耀
学号201130720022
指导教师韦朝海
填表日期
中文译名
(1)巯基改性纤维素对葡萄糖溶液中铅的吸附(2)黄原酸化橘子皮应用于吸附水中的铅离子
外文原文名
(1)Adsorption of Pb(II) from glucose solution on thiol-functionalized cellulosic biomass
2.5分析方法
铅离子的浓度用分光光度计在616 nm波长处用铅与偶氮氯膦-III络合物进行分析。葡萄糖含量采用苯酚—硫酸分光光度法测定。所有的实验均进行三次,已经考虑好误差。
3.结果和讨论
3.1FTIR分析和改性脱脂棉对铅(II)的吸附机制
图1是脱脂棉、改性脱脂棉在400-4000 cm-1(A)和2540-2560 cm-1(B)范围内的红外光谱图。可以看出,改性后改性脱脂棉的红外光谱图中在1735.71 cm-1处出现了一个新的吸收峰是酯基C=O的拉伸振动峰,可见改性脱脂棉中已经成功引入巯基官能团。同时,在2550.52 cm-1出现的一个新吸收峰代表的是S-H官能团的弱吸收峰,更深一层的证明了巯基已经嫁接到脱脂棉上。图1(b)是2540-2560 cm-1光谱范围的一个放大图像,可以清楚的观察到S-H官能团的弱吸收峰。进一步证明了酯化改性脱脂棉引入巯基是成功的。而从吸附后的曲线可以看到,2550.52cm-1处S-H的吸收峰消失,证明了硫原子和Pb(II)络合物的形成,同时1735.71cm-1处C=O的吸收峰强度看起来有轻微的减弱可能也是和Pb(II)的络合吸附有关。

超详细外文翻译模板及写法

超详细外文翻译模板及写法

XX学院毕业论文(设计)外文翻译撰写格式规范一、外文翻译形式要求1、要求本科生毕业论文(设计)外文翻译部分的外文字符不少于1.5万字, 每篇外文文献翻译的中文字数要求达到2000字以上,一般以2000~3000字左右为宜。

2、翻译的外文文献应主要选自学术期刊、学术会议的文章、有关著作及其他相关材料,应与毕业论文(设计)主题相关,并作为外文参考文献列入毕业论文(设计)的参考文献。

3、外文翻译应包括外文文献原文和译文,译文要符合外文格式规范和翻译习惯。

二、打印格式XX学院毕业论文(设计)外文翻译打印纸张统一用A4复印纸,页面设置:上:2.8;下:2.6;左:3.0;右:2.6;页眉:1.5;页脚:1.75。

段落格式为:1.5倍行距,段前、段后均为0磅。

页脚设置为:插入页码,居中。

具体格式见下页温馨提示:正式提交“XX学院毕业论文(设计)外文翻译”时请删除本文本中说明性的文字部分(红字部分)。

XX学院毕业论文(设计)外文翻译题目:系别:服装与艺术设计系专业:班级:学号:学生姓名:一、外文原文见附件(文件名:12位学号+学生姓名+3外文原文.文件扩展名)。

二、翻译文章翻译文章题目(黑体小三号,1.5倍行距,居中)作者(用原文,不需翻译,Times New Roman五号,加粗,1.5倍行距,居中)工作单位(用原文,不需翻译,Times New Roman五号,1.5倍行距,居中)摘要:由于消费者的需求和汽车市场竞争力的提高,汽车检测标准越来越高。

现在车辆生产必须长于之前的时间并允许更高的价格进行连续转售……。

(内容采用宋体五号,1.5倍行距)关键词:汽车产业纺织品,测试,控制,标准,材料的耐用性1 导言(一级标题,黑体五号,1.5倍行距,顶格)缩进两个字符,文本主体内容采用宋体(五号),1.5倍行距参考文献(一级标题,黑体五号, 1.5倍行距,顶格)略(参考文献不需翻译,可省略)资料来源:AUTEX Research Journal, Vol. 5, No3, September 2008*****译****校(另起一页)三、指导教师评语***同学是否能按时完成外文翻译工作。

本科生英文文献翻译格式要求

本科生英文文献翻译格式要求

外文文献翻译格式要求:外文文献翻译是本科生毕业的过程之一,有些格式需要我们注意一下。

(1)摘要,关键词:宋体五号(其中“摘要”和“关键词”为宋体五号加粗),行间距设置为18磅,段前段后间距设置为0.5行,对齐方式选择“两端对齐”方式;各个关键词之间以分号(;)或者(,)隔开,最后一个关键词后不加标点;(2)正文一级标题:采用黑体小三号加粗,行间距设置为20磅,段前段后间距设置为0.5行,一般采用“1 引言”样式,其中1和“引言”之间用一个空格分开;正文二级标题:采用黑体小三号,行间距设置为20磅,段前段后间距设置为0.5行,一般采用“2.1 系统原理”样式,其中1和“系统原理”之间用一个空格分开;;一级标题和二级标题采用“左对齐”方式;(3)正文内容:采用宋体小四号,行间距设置为20磅,段前段后间距设置为0行,首行缩进2字符,正文对齐方式在段落格式设置中选择“两端对齐”,遇正文中有公式的,设置该行(段)行间距为“单倍行距”(4)插图:请设置图片版式为“浮于文字上方”,并勾选“居中”,图片大小根据版面,按比例适当进行缩放,图示说明采用“图 1 主控制器的结构图”样式置于图下,图序与说明以一个空格字符间隔,图示说明采用宋体五号,居中对齐,行间距设置为“单倍行距”,段前段后距设置为0.5行;(5)表格:在表格属性中选择“居中”对齐方式,表格说明采用“表1 两种方法试验数据比较”样式置于表格上方,表序与说明以一个空格字符间隔,表格说明采用宋体五号,居中对齐,行间距设置为“单倍行距”,段前段后距设置为0.5行;(6)参考文献:“参考文献”格式同一级标题格式,参考文献内容采用宋体五号,行间距设置为18磅,段前段后间距设置为0行,对齐方式选择“左对齐”方式,其中出现的标点一律采用英文标点;以上摘要,关键词,正文,标题及参考文献中出现的英文字符和数字,一律设置为“Times New Roman”字体。

外文文献翻译附于开题报告之后:第一部分为译文,第二部分为外文文献原文,译文与原文均需单独编制页码(底端居中)并注明出处。

毕业设计(论文)外文资料和译文格式要求

毕业设计(论文)外文资料和译文格式要求

东北大学东软信息学院外文资料和译文格式要求一、译文必须采用计算机输入、打印,幅面A4。

外文资料原文(复印或打印)在前,译文在后,于左侧装订。

二、具体要求1、至少翻译一篇内容与所选课题相关的外文文献。

2、译文汉字字数不少于4000字。

3、正文格式要求:宋体五号字。

附:外文资料和译文封面、空白页外文资料和译文专业:班级:姓名:学号:指导教师:2010年12月23日5.2.5. Read/Write Spin LocksRead/write spin locks have been introduced to increase the amount of concurrency inside the kernel. They allow several kernel control paths to simultaneously read the same data structure, as long as no kernel control path modifies it. If a kernel control path wishes to write to the structure, it must acquire the write version of the read/write lock, which grants exclusive access to the resource. Of course, allowing concurrent reads on data structures improves system performance.Figure 5-2 illustrates two critical regions (C1 and C2) protected by read/write locks. Kernel control paths R0 and R1 are reading the data structures in C1 at the same time, while W0 is waiting to acquire the lock for writing. Kernel control path W1 is writing the data structures inC2, while both R2 and W2 are waiting to acquire the lock for reading and writing, respectively.Figure 5-2. Read/write spin locksEach read/write spin lock is a rwlock_t structure; its lock field is a 32-bit field that encodes two distinct pieces of information:∙ A 24-bit counter denoting the number of kernel control paths currently reading the protected data structure. The two's complement value of this counter is stored in bits 023 of the field.∙An unlock flag that is set when no kernel control path is reading or writing, and clear otherwise. This unlock flag is stored in bit 24 of the field.Notice that the lock field stores the number 0x01000000 if the spin lock is idle (unlock flag set and no readers), the number 0x00000000 if it has been acquired for writing (unlock flag clear and no readers), and any number in the sequence 0x00ffffff, 0x00fffffe, and so on, if it has been acquired for reading by one, two, or more processes (unlock flag clear and the two's complement on 24 bits of the number of readers). As the spinlock_t structure, the rwlock_t structure also includes a break_lock field.The rwlock_init macro initializes the lock field of a read/write spin lock to 0x01000000 (unlocked) and the break_lock field to zero.5.2.5.1. Getting and releasing a lock for readingThe read_lock macro, applied to the address rwlp of a read/write spin lock, is similar to thespin_lock macro described in the previous section. If the kernel preemption option has been selected when the kernel was compiled, the macro performs the very same actions as those of spin_lock( ), with just one exception: to effectively acquire the read/write spin lock in step 2, the macro executes the _raw_read_trylock( ) function:int _raw_read_trylock(rwlock_t *lock){atomic_t *count = (atomic_t *)lock->lock;atomic_dec(count);if (atomic_read(count) >= 0)return 1;atomic_inc(count);return 0;}The lock fieldthe read/write lock counteris accessed by means of atomic operations. Notice, however, that the whole function does not act atomically on the counter: for instance, the counter might change after having tested its value with the if statement and before returning 1. Nevertheless, the function works properly: in fact, the function returns 1 only if the counter was not zero or negative before the decrement, because the counter is equal to 0x01000000 for no owner, 0x00ffffff for one reader, and 0x00000000 for one writer.If the kernel preemption option has not been selected when the kernel was compiled, theread_lock macro yields the following assembly language code:movl $rwlp->lock,%eaxlock; subl $1,(%eax)jns 1fcall _ _read_lock_failed1:where _ _read_lock_failed( ) is the following assembly language function:_ _read_lock_failed:lock; incl (%eax)1: pausecmpl $1,(%eax)js 1block; decl (%eax)js _ _read_lock_failedretThe read_lock macro atomically decreases the spin lock value by 1, thus increasing the number of readers. The spin lock is acquired if the decrement operation yields a nonnegative value; otherwise, the _ _read_lock_failed( ) function is invoked. The function atomically increases the lock field to undo the decrement operation performed by the read_lock macro, and then loops until the field becomes positive (greater than or equal to 1). Next, _ _read_lock_failed( ) tries to get the spin lock again (another kernel control path could acquire the spin lock for writing right after the cmpl instruction).Releasing the read lock is quite simple, because the read_unlock macro must simply increase the counter in the lock field with the assembly language instruction:lock; incl rwlp->lockto decrease the number of readers, and then invoke preempt_enable( ) to reenable kernel preemption.5.2.5.2. Getting and releasing a lock for writingThe write_lock macro is implemented in the same way as spin_lock( ) andread_lock( ). For instance, if kernel preemption is supported, the function disables kernel preemption and tries to grab the lock right away by invoking_raw_write_trylock( ). If this function returns 0, the lock was already taken, thus the macro reenables kernel preemption and starts a busy wait loop, as explained in the description of spin_lock( ) in the previous section.The _raw_write_trylock( ) function is shown below:int _raw_write_trylock(rwlock_t *lock){atomic_t *count = (atomic_t *)lock->lock;if (atomic_sub_and_test(0x01000000, count))return 1;atomic_add(0x01000000, count);return 0;}The _raw_write_trylock( ) function subtracts 0x01000000 from the read/write spin lock value, thus clearing the unlock flag (bit 24). If the subtraction operation yieldszero (no readers), the lock is acquired and the function returns 1; otherwise, the function atomically adds 0x01000000 to the spin lock value to undo the subtraction operation.Once again, releasing the write lock is much simpler because the write_unlock macro must simply set the unlock flag in the lock field with the assembly language instruction:lock; addl $0x01000000,rwlpand then invoke preempt_enable().5.2.6. SeqlocksWhen using read/write spin locks, requests issued by kernel control paths to perform a read_lock or a write_lock operation have the same priority: readers must wait until the writer has finished and, similarly, a writer must wait until all readers have finished.Seqlocks introduced in Linux 2.6 are similar to read/write spin locks, except that they give a much higher priority to writers: in fact a writer is allowed to proceed even when readers are active. The good part of this strategy is that a writer never waits (unless another writer is active); the bad part is that a reader may sometimes be forced to read the same data several times until it gets a valid copy.Each seqlock is a seqlock_t structure consisting of two fields: a lock field of type spinlock_t and an integer sequence field. This second field plays the role of a sequence counter. Each reader must read this sequence counter twice, before and after reading the data, and check whether the two values coincide. In the opposite case, a new writer has become active and has increased the sequence counter, thus implicitly telling the reader that the data just read is not valid.A seqlock_t variable is initialized to "unlocked" either by assigning to it the value SEQLOCK_UNLOCKED, or by executing the seqlock_init macro. Writers acquire and release a seqlock by invoking write_seqlock( ) and write_sequnlock( ). The first function acquires the spin lock in the seqlock_t data structure, then increases the sequence counter by one; the second function increases the sequence counter once more, then releases the spin lock. This ensures that when the writer is in the middle of writing, the counter is odd, and that when no writer is altering data, the counter is even. Readers implement a critical region as follows:unsigned int seq;do {seq = read_seqbegin(&seqlock);/* ... CRITICAL REGION ... */} while (read_seqretry(&seqlock, seq));read_seqbegin() returns the current sequence number of the seqlock; read_seqretry() returns 1 if either the value of the seq local variable is odd (a writer was updating the data structure when the read_seqbegin( ) function has been invoked), or if the value of seq does not match the current value of the seqlock's sequence counter (a writer started working while the reader was still executing the code in the critical region).Notice that when a reader enters a critical region, it does not need to disable kernel preemption; on the other hand, the writer automatically disables kernel preemption when entering the critical region, because it acquires the spin lock.Not every kind of data structure can be protected by a seqlock. As a general rule, the following conditions must hold:∙The data structure to be protected does not include pointers that are modified by the writers and dereferenced by the readers (otherwise, a writer couldchange the pointer under the nose of the readers)∙The code in the critical regions of the readers does not have side effects (otherwise, multiple reads would have different effects from a single read) Furthermore, the critical regions of the readers should be short and writers should seldom acquire the seqlock, otherwise repeated read accesses would cause a severe overhead. A typical usage of seqlocks in Linux 2.6 consists of protecting some data structures related to the system time handling (see Chapter 6).5.2.7. Read-Copy Update (RCU)Read-copy update (RCU) is yet another synchronization technique designed to protect data structures that are mostly accessed for reading by several CPUs. RCU allows many readers and many writers to proceed concurrently (an improvement over seqlocks, which allow only one writer to proceed). Moreover, RCU is lock-free, that is, it uses no lock or counter shared by all CPUs; this is a great advantage over read/write spin locks and seqlocks, which have a high overhead due to cache line-snooping and invalidation.How does RCU obtain the surprising result of synchronizing several CPUs without shared data structures? The key idea consists of limiting the scope of RCU as follows:1.Only data structures that are dynamically allocated and referenced by meansof pointers can be protected by RCU.2.No kernel control path can sleep inside a critical region protected by RCU.When a kernel control path wants to read an RCU-protected data structure, it executes the rcu_read_lock( ) macro, which is equivalent to preempt_disable( ). Next, the reader dereferences the pointer to the data structure and starts reading it. As stated above, the reader cannot sleep until it finishes reading the data structure; the end of the critical region is marked by the rcu_read_unlock( ) macro, which is equivalent to preempt_enable( ).Because the reader does very little to prevent race conditions, we could expect that the writer has to work a bit more. In fact, when a writer wants to update the data structure, it dereferences the pointer and makes a copy of the whole data structure. Next, the writer modifies the copy. Once finished, the writer changes the pointer to the data structure so as to make it point to the updated copy. Because changing the value of the pointer is an atomic operation, each reader or writer sees either the old copy or the new one: no corruption in the data structure may occur. However, a memory barrier is required to ensure that the updated pointer is seen by the other CPUs only after the data structure has been modified. Such a memory barrier is implicitly introduced if a spin lock is coupled with RCU to forbid the concurrent execution of writers.The real problem with the RCU technique, however, is that the old copy of the data structure cannot be freed right away when the writer updates the pointer. In fact, the readers that were accessing the data structure when the writer started its update could still be reading the old copy. The old copy can be freed only after all (potential) readers on the CPUs have executed the rcu_read_unlock( ) macro. The kernel requires every potential reader to execute that macro before:∙The CPU performs a process switch (see restriction 2 earlier).∙The CPU starts executing in User Mode.∙The CPU executes the idle loop (see the section "Kernel Threads" in Chapter 3).In each of these cases, we say that the CPU has gone through a quiescent state.The call_rcu( ) function is invoked by the writer to get rid of the old copy of the data structure. It receives as its parameters the address of an rcu_head descriptor (usually embedded inside the data structure to be freed) and the address of a callback function to be invoked when all CPUs have gone through a quiescent state. Once executed, the callback function usually frees the old copy of the data structure.The call_rcu( ) function stores in the rcu_head descriptor the address of the callback and its parameter, then inserts the descriptor in a per-CPU list of callbacks. Periodically, once every tick (see the section "Updating Local CPU Statistics" in Chapter 6), the kernel checks whether the local CPU has gone through a quiescent state. When all CPUs have gone through a quiescent state, a local taskletwhose descriptor is stored in the rcu_tasklet per-CPU variableexecutes all callbacks in the list.RCU is a new addition in Linux 2.6; it is used in the networking layer and in the Virtual Filesystem.5.2.8. SemaphoresWe have already introduced semaphores in the section "Synchronization and Critical Regions" in Chapter 1. Essentially, they implement a locking primitive that allows waiters to sleep until the desired resource becomes free.Actually, Linux offers two kinds of semaphores:∙Kernel semaphores, which are used by kernel control paths∙System V IPC semaphores, which are used by User Mode processesIn this section, we focus on kernel semaphores, while IPC semaphores are described in Chapter 19.A kernel semaphore is similar to a spin lock, in that it doesn't allow a kernel control path to proceed unless the lock is open. However, whenever a kernel control path tries to acquire a busy resource protected by a kernel semaphore, the corresponding process is suspended. It becomes runnable again when the resource is released. Therefore, kernel semaphores can be acquired only by functions that are allowed to sleep; interrupt handlers and deferrable functions cannot use them.A kernel semaphore is an object of type struct semaphore, containing the fields shown in the following list.countStores an atomic_t value. If it is greater than 0, the resource is free that is, itis currently available. If count is equal to 0, the semaphore is busy but noother process is waiting for the protected resource. Finally, if count isnegative, the resource is unavailable and at least one process is waiting for it.waitStores the address of a wait queue list that includes all sleeping processes that are currently waiting for the resource. Of course, if count is greater than orequal to 0, the wait queue is empty.sleepersStores a flag that indicates whether some processes are sleeping on thesemaphore. We'll see this field in operation soon.The init_MUTEX( ) and init_MUTEX_LOCKED( ) functions may be used to initialize a semaphore for exclusive access: they set the count field to 1 (free resource with exclusive access) and 0 (busy resource with exclusive access currently granted to the process that initializes the semaphore), respectively. The DECLARE_MUTEX and DECLARE_MUTEX_LOCKED macros do the same, but they also statically allocate the struct semaphore variable. Note that a semaphore could also be initialized with an arbitrary positive value n for count. In this case, at most n processes are allowed to concurrently access the resource.5.2.8.1. Getting and releasing semaphoresLet's start by discussing how to release a semaphore, which is much simpler than getting one. When a process wishes to release a kernel semaphore lock, it invokes the up( ) function. This function is essentially equivalent to the following assembly language fragment:movl $sem->count,%ecxlock; incl (%ecx)jg 1flea %ecx,%eaxpushl %edxpushl %ecxcall _ _uppopl %ecxpopl %edx1:where _ _up( ) is the following C function:__attribute__((regparm(3))) void _ _up(struct semaphore *sem){wake_up(&sem->wait);}The up( ) function increases the count field of the *sem semaphore, and then it checks whether its value is greater than 0. The increment of count and the setting of the flag tested by the following jump instruction must be atomically executed, or else another kernel control path could concurrently access the field value, with disastrousresults. If count is greater than 0, there was no process sleeping in the wait queue, so nothing has to be done. Otherwise, the _ _up( ) function is invoked so that one sleeping process is woken up. Notice that _ _up( ) receives its parameter from the eax register (see the description of the _ _switch_to( ) function in the section "Performing the Process Switch" in Chapter 3).Conversely, when a process wishes to acquire a kernel semaphore lock, it invokes the down( ) function. The implementation of down( ) is quite involved, but it is essentially equivalent to the following:down:movl $sem->count,%ecxlock; decl (%ecx);jns 1flea %ecx, %eaxpushl %edxpushl %ecxcall _ _downpopl %ecxpopl %edx1:where _ _down( ) is the following C function:__attribute__((regparm(3))) void _ _down(struct semaphore * sem){DECLARE_WAITQUEUE(wait, current);unsigned long flags;current->state = TASK_UNINTERRUPTIBLE;spin_lock_irqsave(&sem->wait.lock, flags);add_wait_queue_exclusive_locked(&sem->wait, &wait);sem->sleepers++;for (;;) {if (!atomic_add_negative(sem->sleepers-1, &sem->count)) {sem->sleepers = 0;break;}sem->sleepers = 1;spin_unlock_irqrestore(&sem->wait.lock, flags);schedule( );spin_lock_irqsave(&sem->wait.lock, flags);current->state = TASK_UNINTERRUPTIBLE;}remove_wait_queue_locked(&sem->wait, &wait);wake_up_locked(&sem->wait);spin_unlock_irqrestore(&sem->wait.lock, flags);current->state = TASK_RUNNING;}The down( ) function decreases the count field of the *sem semaphore, and then checks whether its value is negative. Again, the decrement and the test must be atomically executed. If count is greater than or equal to 0, the current process acquires the resource and the execution continues normally. Otherwise, count is negative, and the current process must be suspended. The contents of some registers are saved on the stack, and then _ _down( ) is invoked.Essentially, the _ _down( ) function changes the state of the current process from TASK_RUNNING to TASK_UNINTERRUPTIBLE, and it puts the process in the semaphore wait queue. Before accessing the fields of the semaphore structure, the function also gets the sem->wait.lock spin lock that protects the semaphore wait queue (see "How Processes Are Organized" in Chapter 3) and disables local interrupts. Usually, wait queue functions get and release the wait queue spin lock as necessary when inserting and deleting an element. The _ _down( ) function, however, uses the wait queue spin lock also to protect the other fields of the semaphore data structure, so that no process running on another CPU is able to read or modify them. To that end, _ _down( ) uses the "_locked" versions of the wait queue functions, which assume that the spin lock has been already acquired before their invocations.The main task of the _ _down( ) function is to suspend the current process until the semaphore is released. However, the way in which this is done is quite involved. To easily understand the code, keep in mind that the sleepers field of the semaphore is usually set to 0 if no process is sleeping in the wait queue of the semaphore, and it is set to 1 otherwise. Let's try to explain the code by considering a few typical cases. MUTEX semaphore open (count equal to 1, sleepers equal to 0)The down macro just sets the count field to 0 and jumps to the nextinstruction of the main program; therefore, the _ _down( ) function is notexecuted at all.MUTEX semaphore closed, no sleeping processes (count equal to 0, sleepers equal to 0)The down macro decreases count and invokes the _ _down( ) function withthe count field set to -1 and the sleepers field set to 0. In each iteration of theloop, the function checks whether the count field is negative. (Observe thatthe count field is not changed by atomic_add_negative( ) because sleepers isequal to 0 when the function is invoked.)∙If the count field is negative, the function invokes schedule( ) tosuspend the current process. The count field is still set to -1, and thesleepers field to 1. The process picks up its run subsequently insidethis loop and issues the test again.∙If the count field is not negative, the function sets sleepers to 0 and exits from the loop. It tries to wake up another process in thesemaphore wait queue (but in our scenario, the queue is now empty)and terminates holding the semaphore. On exit, both the count fieldand the sleepers field are set to 0, as required when the semaphore isclosed but no process is waiting for it.MUTEX semaphore closed, other sleeping processes (count equal to -1, sleepers equal to 1)The down macro decreases count and invokes the _ _down( ) function withcount set to -2 and sleepers set to 1. The function temporarily sets sleepers to 2, and then undoes the decrement performed by the down macro by addingthe value sleepers-1 to count. At the same time, the function checks whethercount is still negative (the semaphore could have been released by theholding process right before _ _down( ) entered the critical region).∙If the count field is negative, the function resets sleepers to 1 andinvokes schedule( ) to suspend the current process. The count field isstill set to -1, and the sleepers field to 1.∙If the count field is not negative, the function sets sleepers to 0, tries to wake up another process in the semaphore wait queue, and exitsholding the semaphore. On exit, the count field is set to 0 and thesleepers field to 0. The values of both fields look wrong, becausethere are other sleeping processes. However, consider that anotherprocess in the wait queue has been woken up. This process doesanother iteration of the loop; the atomic_add_negative( ) functionsubtracts 1 from count, restoring it to -1; moreover, before returningto sleep, the woken-up process resets sleepers to 1.So, the code properly works in all cases. Consider that the wake_up( ) function in _ _down( ) wakes up at most one process, because the sleeping processes in the wait queue are exclusive (see the section "How Processes Are Organized" in Chapter 3).Only exception handlers , and particularly system call service routines , can use the down( ) function. Interrupt handlers or deferrable functions must not invoke down( ),because this function suspends the process when the semaphore is busy. For this reason, Linux provides the down_trylock( ) function, which may be safely used by one of the previously mentioned asynchronous functions. It is identical to down( ) except when the resource is busy. In this case, the function returns immediately instead of putting the process to sleep.A slightly different function called down_interruptible( ) is also defined. It is widely used by device drivers, because it allows processes that receive a signal while being blocked on a semaphore to give up the "down" operation. If the sleeping process is woken up by a signal before getting the needed resource, the function increases the count field of the semaphore and returns the value -EINTR. On the other hand, if down_interruptible( ) runs to normal completion and gets the resource, it returns 0. The device driver may thus abort the I/O operation when the return value is -EINTR.Finally, because processes usually find semaphores in an open state, the semaphore functions are optimized for this case. In particular, the up( ) function does not execute jump instructions if the semaphore wait queue is empty; similarly, the down( ) function does not execute jump instructions if the semaphore is open. Much of the complexity of the semaphore implementation is precisely due to the effort of avoiding costly instructions in the main branch of the execution flow.5.2.9. Read/Write SemaphoresRead/write semaphores are similar to the read/write spin locks described earlier in the section "Read/Write Spin Locks," except that waiting processes are suspended instead of spinning until the semaphore becomes open again.Many kernel control paths may concurrently acquire a read/write semaphore for reading; however, every writer kernel control path must have exclusive access to the protected resource. Therefore, the semaphore can be acquired for writing only if no other kernel control path is holding it for either read or write access. Read/write semaphores improve the amount of concurrency inside the kernel and improve overall system performance.The kernel handles all processes waiting for a read/write semaphore in strict FIFO order. Each reader or writer that finds the semaphore closed is inserted in the last position of a semaphore's wait queue list. When the semaphore is released, the process in the first position of the wait queue list are checked. The first process is always awoken. If it is a writer, the other processes in the wait queue continue to sleep. If it is a reader, all readers at the start of the queue, up to the first writer, are also woken up and get the lock. However, readers that have been queued after a writer continue to sleep.Each read/write semaphore is described by a rw_semaphore structure that includes the following fields:countStores two 16-bit counters. The counter in the most significant word encodesin two's complement form the sum of the number of nonwaiting writers(either 0 or 1) and the number of waiting kernel control paths. The counter inthe less significant word encodes the total number of nonwaiting readers andwriters.wait_listPoints to a list of waiting processes. Each element in this list is arwsem_waiter structure, including a pointer to the descriptor of the sleepingprocess and a flag indicating whether the process wants the semaphore forreading or for writing.wait_lockA spin lock used to protect the wait queue list and the rw_semaphorestructure itself.The init_rwsem( ) function initializes an rw_semaphore structure by setting the count field to 0, the wait_lock spin lock to unlocked, and wait_list to the empty list. The down_read( ) and down_write( ) functions acquire the read/write semaphore for reading and writing, respectively. Similarly, the up_read( ) and up_write( ) functions release a read/write semaphore previously acquired for reading and for writing. The down_read_trylock( ) and down_write_trylock( ) functions are similar todown_read( ) and down_write( ), respectively, but they do not block the process if the semaphore is busy. Finally, the downgrade_write( ) function atomically transforms a write lock into a read lock. The implementation of these five functions is long, but easy to follow because it resembles the implementation of normal semaphores; therefore, we avoid describing them.5.2.10. CompletionsLinux 2.6 also makes use of another synchronization primitive similar to semaphores: completions . They have been introduced to solve a subtle race condition that occurs in multiprocessor systems when process A allocates a temporary semaphore variable, initializes it as closed MUTEX, passes its address to process B, and then invokes down( ) on it. Process A plans to destroy the semaphore as soon as it awakens. Later。

外文翻译格式及规范

外文翻译格式及规范

嘉兴学院毕业论文(设计)外文翻译撰写格式规范一、外文翻译形式要求1、要求本科生毕业论文(设计)外文翻译部分的外文字符不少于1.5万字, 每篇外文文献翻译的中文字数要求达到2000字以上,一般以2000~3000字左右为宜。

2、翻译的外文文献应主要选自学术期刊、学术会议的文章、有关著作及其他相关材料,应与毕业论文(设计)主题相关,并作为外文参考文献列入毕业论文(设计)的参考文献。

3、外文翻译应包括外文文献原文和译文,译文要符合外文格式规范和翻译习惯。

二、打印格式嘉兴学院毕业论文(设计)外文翻译打印纸张统一用A4复印纸,页面设置:上:2.8;下:2.6;左:3.0;右:2.6;页眉:1.5;页脚:1.75。

段落格式为:1.5倍行距,段前、段后均为0磅。

页脚设置为:插入页码,居中。

具体格式见下页温馨提示:正式提交“嘉兴学院毕业论文(设计)外文翻译”时请删除本文本中说明性的文字部分(红字部分)。

嘉兴学院本科毕业论文(设计)外文翻译题目:(指毕业论文题目)学院名称:服装与艺术设计学院专业班级:楷体小四学生姓名:楷体小四一、外文原文见附件(文件名:12位学号+学生姓名+3外文原文.文件扩展名)。

二、翻译文章翻译文章题目(黑体小三号,1.5倍行距,居中)作者(用原文,不需翻译,Times New Roman五号,加粗,1.5倍行距,居中)工作单位(用原文,不需翻译,Times New Roman五号,1.5倍行距,居中)摘要:由于消费者的需求和汽车市场竞争力的提高,汽车检测标准越来越高。

现在车辆生产必须长于之前的时间并允许更高的价格进行连续转售……。

(内容采用宋体五号,1.5倍行距)关键词:汽车产业纺织品,测试,控制,标准,材料的耐用性1 导言(一级标题,黑体五号,1.5倍行距,顶格)缩进两个字符,文本主体内容采用宋体(五号),1.5倍行距参考文献(一级标题,黑体五号, 1.5倍行距,顶格)略(参考文献不需翻译,可省略)资料来源:AUTEX Research Journal, V ol. 5, No3, September 2008*****译****校(另起一页)三、指导教师评语***同学是否能按时完成外文翻译工作。

毕业设计论文翻译(译文+原文)

毕业设计论文翻译(译文+原文)

Hacking tricks toward security on network environments Tzer-Shyong Chen1, Fuh-Gwo Jeng 2, and Yu-Chia Liu 11 Department of Information Management, Tunghai University, Taiwan2 Department of Applied Mathematics, National Chiayi University, TaiwanE-Mail:****************.edu.twAbstractMounting popularity of the Internet has led to the birth of Instant Messaging, an up-and-coming form of Internet communication. Instant Messaging is very popular with businesses and individuals since it has instant communication ability. As a result, Internet security has become a pressing and important topic for discussion. Therefore, in recent years, a lot of attention has been drawn towards Internet security and the various attacks carried out by hackers over the Internet. People today often handle affairs via the Internet. For instance, instead of the conventional letter, they communicate with others by e-mails; they chat with friends through an instant messenger; find information by browsing websites instead of going to the library; perform e-commerce transactions through the Internet, etc. Although the convenience of the Internet makes our life easier, it is also a threat to Internet security. For instance, a business email intercepted during its transmission may let slip business confidentiality; file transfers via instant messengers may also be intercepted, and then implanted with backdoor malwares; conversations via instant messengers could be eavesdropped. Furthermore, ID and password theft may lose us money when using Internet bank service. Attackers on the Internet use hacking tricks to damage systems while users are connected to the Internet. These threats along with possible careless disclosure of business information make Instant Messaging a very unsafe method of communication for businesses. The paper divides hacking tricks into three categories: (1) Trojan programs that share files via instant messenger. (2) Phishing or fraud via e-mails. (3) Fake Websites. Keywords:Hacking tricks, Trojan programs, Phishing, Firewall, Intrusion detection system.1. IntroductionIncreasingly more people are using instant messengers such as MSN Messenger, Yahoo! Messenger, ICQ, etc as the media of communication. These instant messengers transmit alphanumeric message as well as permit file sharing. During transfer, a file may be intercepted by a hacker and implanted with backdoor malware. Moreover, the e-mails users receive every day may include Spam, advertisements, and fraudulent mail intended to trick uninformed users. Fake websites too are prevalent. Websites which we often visit could be counterfeited by imitating the interface and the URL of the original, tricking users. The paper classifies hacking tricks into three categories which are explained in the following sections.2. Hacking TricksThe paper divides hacking tricks into three categories: (1) Trojan programs that share files via instant messenger. (2) Phishing (3) Fake Websites.2.1 Trojan programs that share files via instant messengerInstant messaging allows file-sharing on a computer [9]. All present popular instant messengers have file sharing abilities, or allow users to have the above functionality by installing patches or plug-ins; this is also a major threat to present information security. These communication softwares also makeit difficult for existing hack prevention methods to prevent and control information security. Therefore, we shall discuss how to control the flow of instant messages and how to identify dangerous user behavior.Hackers use instant communication capability to plant Trojan program into an unsuspected program; the planted program is a kind of remotely controlled hacking tool that can conceal itself and is unauthorized. The Trojan program is unknowingly executed, controlling the infected computer; it can read, delete, move and execute any file on the computer. The advantages of a hacker replacing remotely installed backdoor Trojan programs [1] with instant messengers to access files are:When the victim gets online, the hacker will be informed. Thus, a hacker can track and access the infected computer, and incessantly steal user information.A hacker need not open a new port to perform transmissions; he can perform his operations through the already opened instant messenger port.Even if a computer uses dynamic IP addresses, its screen name doesn’t change.Certain Trojan programs are designed especially for instant messengers. These Trojans can change group settings and share all files on the hard disk of the infected computer. They can also destroy or modify data, causing data disarray. This kind of program allows a hacker access to all files on an infected computer, and thus poses a great threat to users. The Trojan program takes up a large amount of the resources of the computer causing it to become very slow and often crashes without a reason.Trojan programs that access a user computer through an instant messenger are probably harder to detect than classic Trojan horse programs. Although classic Trojan intrudes a computer by opening a listening or outgoing port which is used to connect toa remote computer, a desktop firewall can effectively block such Trojans. Alternatively, since it is very difficult for the server’s firewall to spot intrusion by controlling an instant messenger’s flow, it is extremely susceptible to intrusion.Present Trojan programs have already successfully implemented instant messengers. Some Trojan programs are Backdoor Trojan, AIMVision, and Backdoor. Sparta.C. Backdoor Trojans use ICQ pager to send messages to its writer. AIMVision steals AIM related information stored in the Windows registry, enabling a hacker to setup an AIM user id. Backdoor. Sparta.C uses ICQ to communicate with its writer and opens a port on an infected host and send its IP Address to the hacker, and at the same time attempts to terminate the antivirus program or firewall of the host.2.1.1 Hijacking and ImpersonationThere are various ways through which a hacker can impersonate other users [7]. The most commonly used method is eavesdropping on unsuspecting users to retrieve user accounts, passwords and other user related information.The theft of user account number and related information is a very serious problem in any instant messenger. For instance, a hacker after stealing a user’s information impersonate the user; the user’s contacts not knowing that the user’s account has been hacked believe that the person they’re talking to is the user, and are persuaded to execute certain programs or reveal confidential information. Hence, theft of user identity not only endangers a user but also surrounding users. Guarding against Internet security problems is presently the focus of future research; because without good protection, a computer can be easily attacked, causing major losses.Hackers wishing to obtain user accounts may do so with the help of Trojans designed to steal passwords. If an instant messenger client stores his/her password on his/her computer, then a hacker can send a Trojan program to the unsuspecting user. When the user executes the program, the program shall search for the user’s password and send it to the hacker. There are several ways through which a Trojan program can send messages back to the hacker. The methods include instant messenger, IRC, e-mails, etc.Current four most popular instant messengers are AIM, Yahoo! Messenger, ICQ, and MSN Messenger, none of which encrypts its flow. Therefore, a hackercan use a man-in-the-middle attack to hijack a connection, then impersonate the hijacked user and participate in a chat-session. Although difficult, a hacker can use the man-in-the-middle attack to hijack the connection entirely. For example, a user may receive an offline message that resembles that sent by the server, but this message could have been sent by the hacker. All at once, the user could also get disconnected to the server. Furthermore, hackers may also use a Denial of Service (DoS) tool or other unrelated exploits to break the user’s connection. However, the server keeps the connection open, and does not know that the user has been disconnected; thus allowing the hacker to impersonate the user. Moreover, since the data flow is unencrypted and unauthenticated, a hacker can use man-in-the-middle attacks that are similar to that of ARP fraud to achieve its purpose.2.1.2 Denial of Service (DoS)There are many ways through which a hacker can launch a denial of service (DoS) attack [2] on an instant messenger user. A Partial DoS attack will cause a user end to hang, or use up a large portion of CPU resources causing the system to become unstable.Another commonly seen attack is the flooding of messages to a particular user. Most instant messengers allow the blocking of a particular user to prevent flood attacks. However, a hacker can use tools that allow him to log in using several different identities at the same time, or automatically create a large number of new user ids, thus enabling a flood attack. Once a flood attack begins, even if the user realizes that his/her computer has been infected, the computer will not be able to respond. Thus, the problem cannot be solved by putting a hacker’s user id on the ignore list of your instant messenger.A DoS attack on an instant messenger client is only a common hacking tool. The difficulty of taking precautions against it could turn this hacking tool into dangerous DoS type attacks. Moreover, some hacking tools do not just cause an instant messenger client to hang, but also cause the user end to consume large amount of CPU time, causing the computer to crash.2.1.3 Information DisclosureRetrieving system information through instant messenger users is currently the most commonly used hacking tool [4]. It can effortlessly collect user network information like, current IP, port, etc. IP address retriever is an example. IP address retrievers can be used to many purposes; for instance, a Trojan when integrated with an IP address retriever allows a hacker to receive all information related to the infected computer’s IP address as soon as the infected computer connects to the internet. Therefore, even if the user uses a dynamic IP address, hackers can still retrieve the IP address.IP address retrievers and other similar tools can also be used by hackers to send data and Trojans to unsuspecting users. Hackers may also persuade unsuspecting users to execute files through social engineering or other unrelated exploits. These files when executed search for information on the user’s computer and sends them back to the hacker through the instant messenger network.Different Trojan programs were designed for different instant messaging clients. For example, with a user accounts and password stealing Trojans a hacker can have full control of the account once the user logs out. The hacker can thus perform various tasks like changing the password and sending the Trojan program to all of the user’s contacts.Moreover, Trojans is not the only way through which a hacker can cause information disclosure. Since data sent through instant messengers are unencrypted, hackers can sniff and monitor entire instant messaging transmissions. Suppose an employee of an enterprise sends confidential information of the enterprise through the instant messenger; a hacker monitoring the instant messaging session can retrieve the data sent by the enterprise employee. Thus, we must face up to the severity of the problem.2.2 PhishingThe word “Phishing” first appeared in 1996. It is a variant of ‘fishing’, and formed by replacing the ‘f’ in ‘fishing’ with ‘ph’ from phone. It means tricking users of their money through e-mails.Based on the statistics of the Internet Crime Complaint Center, loss due to internet scam was as high as $1.256 million USD in 2004. The Internet Crime Complaint Center has listed the above Nigerian internet scam as one of the ten major internet scams.Based on the latest report of Anti-Phishing Working Group (APWG) [8], there has been a 28% growth of Phishing scams in the past 4 months, mostly in the US and in Asia. Through social engineering and Trojans, it is very difficult for a common user to detect the infection.To avoid exploitation of your compassion, the following should be noted:(1)When you need to enter confidentialinformation, first make sure that theinformation is entered via an entirely secureand official webpage. There are two ways todetermine the security of the webpage:a.The address displayed on the browserbegins with https://, and not http://. Payattention to if the letter ‘s’ exists.b.There is a security lock sign on the lowerright corner of the webpage, and whenyour mouse points to the sign, a securitycertification sign shall appear.(2)Consider installing a browser security softwarelike SpoofStick which can detect fake websites.(3)If you suspect the received e-mail is a Phishinge-mail, do not open attachments attached to theemail. Opening an unknown attachment couldinstall malicious programs onto your computer.(4)Do not click on links attached to your emails. Itis always safer to visit the website through theofficial link or to first confirm the authenticityof the link. Never follow or click on suspiciouslinks in an e-mail. It is advisable to enter theURL at the address bar of the web browser,and not follow the given link.Generally speaking, Phishing [3] [5] is a method that exploits people’s sympathy in the form of aid-seeking e-mails; the e-mail act as bait. These e-mails usually request their readers to visit a link that seemingly links to some charitable organization’s website; but in truth links the readers to a website that will install a Trojan program into the reader’s computer. Therefore, users should not forward unauthenticated charity mails, or click on unfamiliar links in an e-mail. Sometimes, the link could be a very familiar link or an often frequented website, but still, it would be safer if you’d type in the address yourself so as to avoid being linked to a fraudulent website. Phisher deludes people by using similar e-mails mailed by well-known enterprises or banks; these e-mails often asks users to provide personal information, or result in losing their personal rights; they usually contain a counterfeit URL which links to a website where the users can fillin the required information. People are often trapped by phishing due to inattentionBesides, you must also be careful when using a search engine to search for donations and charitable organizations.2.3 Fake WebsitesFake bank websites stealing account numbers and passwords have become increasingly common with the growth of online financial transactions. Hence, when using online banking, we should take precautions like using a secure encrypted customer’s certificate, surf the net following the correct procedure, etc.There are countless kinds of phishing baits, for instance, messages that say data expired, data invalid, please update data, or identity verification intended to steal account ID and matching password. This typeof online scam is difficult for users to identify. As scam methods become finer, e-mails and forged websites created by the impostor resemble their original, and tremendous losses arise from the illegal transactions.The following are methods commonly used by fake websites. First, the scammers create a similar website homepage; then they send out e-mails withenticing messages to attract visitors. They may also use fake links to link internet surfers to their website. Next, the fake website tricks the visitors into entering their personal information, credit card information or online banking account number and passwords. After obtaining a user’s information, the scammers can use the information to drain the bank accounts, shop online or create fake credit cards and other similar crimes. Usually, there will be a quick search option on these fake websites, luring users to enter their account number and password. When a user enters their account number and password, the website will respond with a message stating that the server is under maintenance. Hence, we must observe the following when using online banking:(1)Observe the correct procedure for entering abanking website. Do not use links resultingfrom searches or links on other websites.(2)Online banking certifications are currently themost effective security safeguard measure. (3)Do not easily trust e-mails, phone calls, andshort messages, etc. that asks for your accountnumber and passwords.Phishers often impost a well-known enterprise while sending their e-mails, by changing the sender’s e-mail address to that of the well known enterprise, in order to gain people’s trust. The ‘From’ column of an e-mail is set by the mail software and can be easily changed by the web administrator. Then, the Phisher creates a fake information input website, and send out e-mails containing a link to this fake website to lure e-mail recipients into visiting his fake website.Most Phishers create imitations of well known enterprises websites to lure users into using their fake websites. Even so, a user can easily notice that the URL of the website they’re entering has no relation to the intended enterprise. Hence, Phishers may use different methods to impersonate enterprises and other people. A commonly used method is hiding the URL. This can easily be done with the help of JavaScript.Another way is to exploit the loopholes in an internet browser, for instance, displaying a fake URL in the browser’s address bar. The security loophole causing the address bar of a browser to display a fake URL is a commonly used trick and has often been used in the past. For example, an e-mail in HTML format may hold the URL of a website of a well-known enterprise, but in reality, the link connects to a fake website.The key to successfully use a URL similar to that of the intended website is to trick the visual senses. For example, the sender’s address could be disguised as that of Nikkei BP, and the link set to http://www.nikeibp.co.jp/ which has one k less than the correct URL which is http://www.nikkeibp.co.jp/. The two URLs look very similar, and the difference barely noticeable. Hence people are easily tricked into clicking the link.Besides the above, there are many more scams that exploit the trickery of visual senses. Therefore, you should not easily trust the given sender’s name and a website’s appearance. Never click on unfamiliar and suspicious URLs on a webpage. Also, never enter personal information into a website without careful scrutiny.3. ConclusionsBusiness strategy is the most effective form of defense and also the easiest to carry out. Therefore, they should be the first line of defense, and not last. First, determine if instant messaging is essential in the business; then weigh its pros and cons. Rules and norms must be set on user ends if it is decided that the business cannot do without instant messaging functionality. The end server should be able to support functions like centralized logging and encryption. If not, then strict rules must be drawn, and carried out by the users. Especially, business discussions must not be done over an instant messenger.The paper categorized hacking tricks into three categories: (1) Trojan programs that share files via instant messenger. (2) Phishing (3) Fake Websites. Hacking tricks when successfully carried out could cause considerable loss and damage to users. The first category of hacking tricks can be divided into three types: (1) Hijacking and Impersonation; (2) Denial of Service; (3) Information Disclosure.Acknowledgement:This work was supported by the National Science Council, Taiwan, under contract No. NSC 95-2221-E-029-024.References[1] B. Schneier, “The trojan horse race,”Communications of ACM, Vol. 42, 1999, pp.128.[2] C. L. Schuba, “Analysis of a denial of serviceattack on TCP,” IEEE Security and PrivacyConference, 1997, pp. 208-223.[3] E. Schultz, “Phishing is becoming moresophisticated,” Computer and Security, Vol.24(3), 2005, pp. 184-185.[4]G. Miklau, D. Suciu, “A formal analysis ofinformation disclosure in data exchange,”International Conference on Management ofData, 2004, pp. 575-586.[5]J. Hoyle, “'Phishing' for trouble,” Journal ofthe American Detal Association, Vol. 134(9),2003, pp. 1182-1182.[6]J. Scambray, S. McClure, G. Kurtz, Hackingexposed: network security secrets and solutions,McGraw-Hill, 2001.[7]T. Tsuji and A. Shimizu, “An impersonationattack on one-time password authenticationprotocol OSPA,” to appear in IEICE Trans.Commun, Vol. E86-B, No.7, 2003.[8]Anti-Phishing Working Group,.[9]/region/tw/enterprise/article/icq_threat.html.有关网络环境安全的黑客技术摘要:现在人们往往通过互联网处理事务。

本科毕业设计(论文)外文翻译译文

本科毕业设计(论文)外文翻译译文

本科毕业设计(论文)外文翻译译文
学生姓名:
院(系):
专业班级:
指导教师:
完成日期:20 年月日
要求
1、外文翻译是毕业设计(论文)的主要内容之一,必须学生独立完成。

2、外文翻译译文内容应与学生的专业或毕业设计(论文)内容相关,不得少于20000印刷符号。

3.外文翻译译文用A4纸打印。

文章标题用3号宋体,章节标题用4号宋体,正文用小4号宋体,20磅行距;页边距上、下、左、右均为2.5cm,左侧装订,装订线0.5cm。

按中文翻译在上,外文原文在下的顺序装订。

4、年月日等的填写,用阿拉伯数字书写,要符合《关于出版物上数字用法的试行规定》,如“2005年2月26日”。

5、所有签名必须手写,不得打印。

文献名称(中文)
文献名称(外文)
作者: ***
起止页码:
出版日期(期刊号):
出版单位:(以上文字用小4号宋体,数字、字母用Times New Roman体)外文翻译译文:(小4号宋体)。

毕业论文--成本控制(cost--control)外文原文及译文【范本模板】

毕业论文--成本控制(cost--control)外文原文及译文【范本模板】

本科生毕业设计(论文)外文原文及译文所在系管理系学生姓名专业财务管理班级学号指导教师2014 年 6 月外文原文及译文Cost ControlRoger J. AbiNaderReference for Business,Encyclopedia of Business, 2nd ed。

Cost control,also known as cost management or cost containment,is a broad set of cost accounting methods and management techniques with the common goal of improving business cost-efficiency by reducing costs, or at least restricting their rate of growth. Businesses use cost control methods to monitor, evaluate, and ultimately enhance the efficiency of specific areas,such as departments,divisions, or product lines, within their operations.Cooper and Kaplan in 1987 in an article entitled "how cost accounting systematically distorts product costs” article for the first time put forward the theory of "cost drivers" (cost driver, cost of driving factor)of that cost, in essence,is a function of a variety of independent or interaction of factors (independent variable) work together to drive the results. So what exactly is what factors drive the cost or the cost of motive which? Traditionally, the volume of business (such as yield)as the only cost driver (independent variable),at least that its cost allocation plays a decisive role in restricting aside,regardless of other factors (motivation). In accordance with the full cost of this cost driver, the enterprise is divided into variable costs and fixed costs of the two categories。

毕业设计(论文)外文资料及译文(模板)

毕业设计(论文)外文资料及译文(模板)

大连东软信息学院
毕业设计(论文)外文资料及译文
系所:
专业:
班级:
姓名:
学号:
大连东软信息学院
Dalian Neusoft University of Information
外文资料和译文格式要求
一、装订要求
1、外文资料原文(复印或打印)在前、译文在后、最后为指导教师评定成绩。

2、译文必须采用计算机输入、打印。

3、A4幅面打印,于左侧装订。

二、撰写要求
1、外文文献内容与所选课题相关。

2、本科学生译文汉字字数不少于4000字,高职学生译文汉字字数不少于2000字。

三、格式要求
1、译文字号:中文小四号宋体,英文小四号“Times New Roman”字型,全文统一,首行缩进2个中文字符,1.5倍行距。

2、译文页码:页码用阿拉伯数字连续编页,字体采用“Times New Roman”字体,字号小五,页底居中。

3、译文页眉:眉体使用单线,页眉说明五号宋体,居中“大连东软信息学院本科毕业设计(论文)译文”。

大连东软信息学院毕业设计(论文)译文
大连东软信息学院毕业设计(论文)译文
大连东软信息学院毕业设计(论文)译文
大连东软信息学院毕业设计(论文)译文
大连东软信息学院毕业设计(论文)译文。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附件8
桂林航天工业学院
本科毕业设计(论文)外文译文
系名:
专业班级:
学生姓名:学号:
外文出处:
(用外文写)
附件:1.外文译文2.外文原文
年月日
填写要求
一、外文译文必须使用计算机打印,或用黑色水笔手工工整书写。

二、所选的外文原文不少于10000印刷字符,其内容必须与课题或专业方向紧密相关,由指导教师提供,并注明详细出处。

三、外文译文需在文本后附原文(或复印件)。

附件1:外文译文
译文标题(小二号黑体,居中)
×××××××××(小4号宋体,行间距取固定值23磅)×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××…………。

(要求不少于5000汉字)
附件2:外文原文。

相关文档
最新文档