基于ARM的智能手持设备MP3播放器的设计与开发英文参考文献.doc
《基于ARM的智能手持设备MP3播放器的设计与开发英文参考文献.doc》由会员分享,可在线阅读,更多相关《基于ARM的智能手持设备MP3播放器的设计与开发英文参考文献.doc(12页珍藏版)》请在三一办公上搜索。
1、学校代码: XXX学 号: XXX 本科毕业设计外文文献翻译(学生姓名:XXX学 院:信息工程学院系 别:计算机系专 业:软件工程班 级:软件06指导教师:XXX 副教 授二 一 年 六 月Process ManagementThe process is one of the fundamental abstractions in Unix operating systems. A process is a program(object code stored on some media) in execution. Processes are, however, more than just
2、 the executingprogram code (often called the text section in Unix). They also include a set of resources such as open files and pending signals, internal kernel data, processor state, an address space, one or more threads ofexecution, and a data section containing global variables. Processes, in eff
3、ect, are the living result of running program code.Threads of execution, often shortened to threads, are the objects of activity within the process. Each thread includes a unique program counter, process stack, and set of processor registers. The kernel schedules individual threads, not processes. I
4、n traditional Unix systems, each process consists of one thread. In modern systems, however, multithreaded programsthose that consist of more than one threadare common. Linux has a unique implementation of threads: It does not differentiate between threads and processes. To Linux, a thread is just a
5、 special kind of process.On modern operating systems, processes provide two virtualizations: a virtualized processor and virtual memory. The virtual processor gives the process the illusion that it alone monopolizes the system, despite possibly sharing the processor among dozens of other processes.
6、discusses this virtualization. Virtual memory lets the process allocate and manage memory as if it alone owned all the memory in the system. Interestingly, note that threads share the virtual memory abstraction while each receives its own virtualized processor.A program itself is not a process; a pr
7、ocess is an active program and related resources. Indeed, two or more processes can exist that are executing the same program. In fact, two or more processes can exist that share various resources, such as open files or an address space.A process begins its life when, not surprisingly, it is created
8、. In Linux, this occurs by means of the fork()system call, which creates a new process by duplicating an existing one. The process that calls fork() is the parent, whereas the new process is the child. The parent resumes execution and the child starts execution at the same place, where the call retu
9、rns. The fork() system call returns from the kernel twice:once in the parent process and again in the newborn child.Often, immediately after a fork it is desirable to execute a new, different, program. The exec*() family of function calls is used to create a new address space and load a new program
10、into it. In modern Linux kernels, fork() is actually implemented via the clone() system call, which is discussed in a followingsection.Finally, a program exits via the exit() system call. This function terminates the process and frees all its resources. A parent process can inquire about the status
11、of a terminated child via the wait4() system call, which enables a process to wait for the termination of a specific process. When a process exits, it is placed into a special zombie state that is used to represent terminated processes until the parent calls wait() or waitpid().Another name for a pr
12、ocess is a task. The Linux kernel internally refers to processes as tasks. although when I say task I am generally referring to a process from the kernels point of view.1 Process Descriptor and the Task StructureThe kernel stores the list of processes in a circular doubly linked list called the task
13、 list. Each element in the task list is a process descriptor of the type struct task_struct, which is defined in .The process descriptor contains all the information about a specific process.The task_struct is a relatively large data structure, at around 1.7 kilobytes on a 32-bit machine. This size,
14、however, is quite small considering that the structure contains all the information that the kernel has and needs about a process. The process descriptor contains the data that describes the executing programopen files, the processs address space, pending signals, the processs state, and much more2
15、Allocating the Process DescriptorThe task_struct structure is allocated via the slab allocator to provide object reuse and cache coloring Prior to the 2.6 kernel series, struct task_struct was stored at the end of the kernel stack of each process. This allowed architectures with few registers, such
16、as x86, to calculate the location of the process descriptor via the stack pointer without using an extra register to store the location. With the process descriptor now dynamically created via the slab allocator, a new structure, struct thread_info, was created that again lives at the bottom of the
17、stack and at the top of the stack . The new structure also makes it rather easy to calculate offsets of its values for use in assembly code.The thread_info structure is defined on x86 in asstruct thread_info struct task_struct *task;struct exec_domain *exec_domain;unsigned long flags;unsigned long s
18、tatus;_u32 cpu;_s32 preempt_count;mm_segment_t addr_limit;struct restart_block restart_block;unsigned long previous_esp;_u8 supervisor_stack0;Each tasks tHRead_info structure is allocated at the end of its stack. The task element of the structure is a pointer to the tasks actual task_struct.3 Storin
19、g the Process DescriptorThe system identifies processes by a unique process identification value or PID. The PID is a numerical value that is represented by the opaque type pid_t, which is typically an int. Because of backward compatibility with earlier Unix and Linux versions, however, the default
20、maximum value is only 32,768 although the value can optionally be increased to the full range afforded the type. The kernel stores this value as pid inside each process descriptor.This maximum value is important because it is essentially the maximum number of processes that may exist concurrently on
21、 the system. Although 32,768 might be sufficient for a desktop system, large servers may require many more processes. The lower the value, the sooner the values will wrap around, destroying the useful notion that higher values indicate later run processes than lower values. If the system is willing
22、to break compatibility with old applications, the administrator may increase the maximum value via /proc/sys/kernel/pid_max.Inside the kernel, tasks are typically referenced directly by a pointer to their task_struct structure. In fact, most kernel code that deals with processes works directly with
23、struct task_struct. Consequently, it is very useful to be able to quickly look up the process descriptor of the currently executing task, which is done via the current macro. This macro must be separately implemented by each architecture. Some architectures save a pointer to the task_struct structur
24、e of the currently running process in a register, allowing for efficient access. Other architectures, such as x86 (which has few registers to waste), make use of the fact that struct thread_info is stored on the kernel stack to calculate the location of thread_info and subsequently the task_struct.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于ARM的智能手持设备MP3播放器的设计与开发 英文参考文献 基于 ARM 智能 手持 设备 MP3 播放 设计 开发 英文 参考文献

链接地址:https://www.31ppt.com/p-2392703.html