Главная » Просмотр файлов » Software Engineering Body of Knowledge (v3) (2014)

Software Engineering Body of Knowledge (v3) (2014) (811503), страница 67

Файл №811503 Software Engineering Body of Knowledge (v3) (2014) (Software Engineering Body of Knowledge (v3) (2014).pdf) 67 страницаSoftware Engineering Body of Knowledge (v3) (2014) (811503) страница 672020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 67)

Interpretationtranslates the source code one statement at a timeinto machine language, executes it on the spot,and then goes back for another statement. Boththe high-level-language source code and the interpreter are required every time the program is run.Compilation translates the high-level-languagesource code into an entire machine-language program (an executable image) by a program called acompiler.

After compilation, only the executableimage is needed to run the program. Most application software is sold in this form.While both compilation and interpretation convert high level language code into machine code,there are some important differences between thetwo methods. First, a compiler makes the conversion just once, while an interpreter typically converts it every time a program is executed. Second,interpreting code is slower than running the compiled code, because the interpreter must analyzeeach statement in the program when it is executedand then perform the desired action, whereas thecompiled code just performs the action withina fixed context determined by the compilation.Third, access to variables is also slower in aninterpreter because the mapping of identifiers tostorage locations must be done repeatedly at runtime rather than at compile time.The primary tasks of a compiler may includepreprocessing, lexical analysis, parsing, semanticanalysis, code generation, and code optimization.

Program faults caused by incorrect compilerbehavior can be very difficult to track down. Forthis reason, compiler implementers invest a lot oftime ensuring the correctness of their software.10.3. The Compilation ProcessCompilation is a complex task. Most compilersdivide the compilation process into many phases.A typical breakdown is as follows:•  Lexical Analysis•  Syntax Analysis or Parsing•  Semantic Analysis•  Code GenerationLexical analysis partitions the input text (thesource code), which is a sequence of characters,into separate comments, which are to be ignoredin subsequent actions, and basic symbols, whichhave lexical meanings.

These basic symbolsmust correspond to some terminal symbols ofthe grammar of the particular programming language. Here terminal symbols refer to the elementary symbols (or tokens) in the grammar thatcannot be changed.Syntax analysis is based on the results of thelexical analysis and discovers the structure in theprogram and determines whether or not a textconforms to an expected format. Is this a textually correct C++ program? or Is this entry textually correct? are typical questions that can be13-16  SWEBOK® Guide V3.0answered by syntax analysis.

Syntax analysisdetermines if the source code of a program is correct and converts it into a more structured representation (parse tree) for semantic analysis ortransformation.Semantic analysis adds semantic informationto the parse tree built during the syntax analysisand builds the symbol table. It performs various semantic checks that include type checking,object binding (associating variable and functionreferences with their definitions), and definiteassignment (requiring all local variables to beinitialized before use). If mistakes are found, thesemantically incorrect program statements arerejected and flagged as errors.Once semantic analysis is complete, the phaseof code generation begins and transforms theintermediate code produced in the previousphases into the native machine language of thecomputer under consideration. This involvesresource and storage decisions—such as decidingwhich variables to fit into registers and memoryand the selection and scheduling of appropriatemachine instructions, along with their associatedaddressing modes.It is often possible to combine multiple phasesinto one pass over the code in a compiler implementation.

Some compilers also have a preprocessing phase at the beginning or after the lexicalanalysis that does necessary housekeeping work,such as processing the program instructions forthe compiler (directives). Some compilers provide an optional optimization phase at the end ofthe entire compilation to optimize the code (suchas the rearrangement of instruction sequence)for efficiency and other desirable objectivesrequested by the users.11. Operating Systems Basics[4*, c3]Every system of meaningful complexity needsto be managed. A computer, as a rather complexelectrical-mechanical system, needs its own manager for managing the resources and activitiesoccurring on it.

That manager is called an operating system (OS).11.1. Operating Systems OverviewOperating systems is a collection of software andfirmware, that controls the execution of computerprograms and provides such services as computerresource allocation, job control, input/output control, and file management in a computer system.Conceptually, an operating system is a computerprogram that manages the hardware resourcesand makes it easier to use by applications by presenting nice abstractions. This nice abstractionis often called the virtual machine and includessuch things as processes, virtual memory, andfile systems. An OS hides the complexity of theunderlying hardware and is found on all moderncomputers.The principal roles played by OSs are management and illusion.

Management refers to the OS’smanagement (allocation and recovery) of physical resources among multiple competing users/applications/tasks. Illusion refers to the niceabstractions the OS provides.11.2. Tasks of an Operating SystemThe tasks of an operating system differ significantly depending on the machine and time of itsinvention. However, modern operating systemshave come to agreement as to the tasks that mustbe performed by an OS. These tasks include CPUmanagement, memory management, disk management (file system), I/O device management,and security and protection.

Each OS task manages one type of physical resource.Specifically, CPU management deals with theallocation and releases of the CPU among competing programs (called processes/threads in OSjargon), including the operating system itself. Themain abstraction provided by CPU management isthe process/thread model. Memory managementdeals with the allocation and release of memoryspace among competing processes, and the mainabstraction provided by memory managementis virtual memory. Disk management deals withthe sharing of magnetic or optical or solid statedisks among multiple programs/users and its mainabstraction is the file system.

I/O device management deals with the allocation and releases ofvarious I/O devices among competing processes.Computing Foundations  13-17Security and protection deal with the protection ofcomputer resources from illegal use.11.3. Operating System AbstractionsThe arsenal of OSs is abstraction. Correspondingto the five physical tasks, OSs use five abstractions: process/thread, virtual memory, file systems, input/output, and protection domains. Theoverall OS abstraction is the virtual machine.For each task area of OS, there is both a physical reality and a conceptual abstraction. The physical reality refers to the hardware resource undermanagement; the conceptual abstraction refersto the interface the OS presents to the users/programs above.

For example, in the thread modelof the OS, the physical reality is the CPU and theabstraction is multiple CPUs. Thus, a user doesn’thave to worry about sharing the CPU with otherswhen working on the abstraction provided by anOS. In the virtual memory abstraction of an OS,the physical reality is the physical RAM or ROM(whatever), the abstraction is multiple unlimited memory space. Thus, a user doesn’t have toworry about sharing physical memory with othersor about limited physical memory size.Abstractions may be virtual or transparent;in this context virtual applies to something thatappears to be there, but isn’t (like usable memorybeyond physical), whereas transparent appliesto something that is there, but appears not to bethere (like fetching memory contents from disk orphysical memory).11.4. Operating Systems ClassificationDifferent operating systems can have differentfunctionality implementation.

In the early daysof the computer era, operating systems were relatively simple. As time goes on, the complexityand sophistication of operating systems increasessignificantly. From a historical perspective, anoperating system can be classified as one of thefollowing.•  Batching OS: organizes and processes workin batches. Examples of such OSs includeIBM’s FMS, IBSYS, and University ofMichigan’s UMES.•  Multiprogrammed batching OS: adds multitask capability into earlier simple batchingOSs. An example of such an OS is IBM’sOS/360.•  Time-sharing OS: adds multi-task and interactive capabilities into the OS. Examples ofsuch OSs include UNIX, Linux, and NT.•  Real-time OS: adds timing predictability into the OS by scheduling individualtasks according to each task’s completiondeadlines.

Examples of such OS includeVxWorks (WindRiver) and DART (EMC).•  Distributed OS: adds the capability of managing a network of computers into the OS.•  Embedded OS: has limited functionality andis used for embedded systems such as carsand PDAs. Examples of such OSs includePalm OS, Windows CE, and TOPPER.Alternatively, an OS can be classified by itsapplicable target machine/environment into thefollowing.•  Mainframe OS: runs on the mainframe computers and include OS/360, OS/390, AS/400,MVS, and VM.•  Server OS: runs on workstations or serversand includes such systems as UNIX, Windows, Linux, and VMS.•  Multicomputer OS: runs on multiple computers and include such examples as NovellNetware.•  Personal computers OS: runs on personalcomputers and include such examples asDOS, Windows, Mac OS, and Linux.•  Mobile device OS: runs on personal devicessuch as cell phones, IPAD and include suchexamples of iOS, Android, Symbian, etc.12. Database Basics and Data Management[4*, c9]A database consists of an organized collection ofdata for one or more uses.

Характеристики

Тип файла
PDF-файл
Размер
6,58 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6310
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее