Моделирование работы ЭВМ в среде GPSS

Тип работы:
Контрольная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

1. Задание

Аппаратно программный комплекс имеет следующую структуру:

· Микропроцессорное устройство резервировано четырьмя такими же устройствами, включенными по мажоритарной схеме; время работы до отказа каждого устройства подчинено распределению Релея с параметром М= 1300 час.; перерыв в работе блока микропроцессорных устройств недопустим;

· Блок оперативной памяти состоит из восьми нерезервированных модулей, собранных в деградирующую (допускающую работу минимум двух модулей) схему; время работы до отказа каждого устройства подчинено экспоненциальному распределению с параметром л=8?10-4 [1/час]; перерыв в работе блока оперативной памяти недопустим;

· Внешнее запоминающее устройство резервировано тремя такими же запоминающими устройствами, находящимися в холодном резерве; время работы до отказа каждого устройства подчинено экспоненциальному распределению с параметром л=2?10-4 [1/час]; перерыв в работе блока внешних запоминающим устройств недопустим;

· Программное обеспечение представлено основной и дублирующей (с сокращенным функционалом) программами; их параметры надежности следует оценивать по исходному коду, полагая, что для приемлемой отладки основной программы предполагается выделить 3000 час., а для приемлемой отладки дублирующей программы — 2000 час.

· В контуре управления комплексом присутствует оператор, вероятность безошибочного функционирования которого задается двойной экспоненциальной моделью, где — необходимое время работы оператора при выполнении задачи комплексом, = 130 час. — время обучения оператора, н=4·10-6 [1/час] - интенсивность совершения ошибок оператором в течение времени его обучения, л= 1,5·10-5 [1/час] - интенсивность совершения ошибок оператором в течение времени его работы.

Отказы аппаратуры и программного обеспечения и ошибки оператора взаимно независимы.

Определить надежностные характеристики аппаратно-программного комплекса: вероятность безотказного функционирования в течение 1000 часов и среднее время работы до отказа.

2. Нахождение формулы вычисления вероятностей безотказной работы

2. 1 Вычисление вероятности безотказной работы микропроцессорного устройства

Вероятность безотказной работы одного микропроцессорного устройства подчинена распределению Релея с параметром М = 1300 час (1), следовательно здесь уместно применить формулу:

; (2)

Так как микропроцессорное устройство резервировано четырьмя такими же устройствами, включенными по мажоритарной схеме, то формула общей вероятности безотказной работы будет иметь следующий вид:

;

(3)

Подставим уравнения (1) и (2) в (3):

(4)

Формула (4) предназначена для вычисления вероятности безотказной работы микропроцессорного устройства. Подставим в формулу (4) значение времени согласно индивидуальному заданию t=1000:

2. 2 Вычисление вероятности безотказной работы блока оперативной памяти

Время работы до отказа каждого устройства подчинено экспоненциальному распределению с параметром л=8* [1/час]; (5). Тогда запишем формулу работы одного модуля оперативной памяти:

; (6)

Так как блок оперативной памяти состоит из восьми нерезервированных модулей, собранных в деградирующую схему, то есть допускающую работу минимум двух модулей, то:

; (7)

либо

; (8)

Подставим в (8) выражение (6), а также уравнение (5):

; (9)

Формула (9) предназначена для вычисления вероятности безотказной работы блока оперативной памяти. Подставим в формулу (9) значение времени согласно индивидуальному заданию t=1000:

2. 3 Вычисление вероятности безотказной работы внешнего запоминающего устройства

Так как внешнее запоминающее устройство резервировано двумя такими же запоминающими устройствами, находящимися в холодном резерве, то уместно применить здесь формулу:

; (10)

При этом л=2* [1/час] (11).

Подставим (11) в выражение (10):

(12)

Получена формула расчета вероятности безотказной работы внешнего запоминающего устройства. Подставим в формулу (12) значение времени согласно индивидуальному заданию t=1000:

2. 4 Вычисление вероятности безотказной работы программного обеспечения

Текст программы можно посмотреть в пункте 5.

В ходе анализа текста программы, можно получить следующие уравнения:

Найдем объем словаря:

Найдем длину программы:

Объем программы в битах будет равен:

Потенциальный объем:

Общее число мысленных различий:

.

Число потенциальных ошибок внесенных в программу:

.

Отсюда можем получить:

Так как в задании у нас имеется две программы, то:

.

Соответственно для первой и второй программы вероятности безотказной работы будут равны:

; (13)

; (14)

Так как программное обеспечение представляет собой две программы, причем вторая является дублирующей, то общая вероятность безотказной работы рассчитывается по формуле:

; (15)

вероятность безотказный аппаратный программный

Подставим в выражение (15) формулы (13) и (14):

; (16)

Формула (16) предназначена для вычисления вероятности безотказной работы программного обеспечения. Подставим в формулу (16) значение времени согласно индивидуальному заданию t=1000:

.

2. 5 Вычисление вероятности безотказной работы оператора

Вероятность безошибочного функционирования оператора задается двойной экспоненциальной моделью:

; (17)

где — необходимое время работы оператора при выполнении задачи комплексом, = 130 час. — время обучения оператора, н=4·10-6 [1/час] - интенсивность совершения ошибок оператором в течение времени его обучения, л= 1,5·10-5 [1/час]

Подставив все в формулу (17) получим:

; (18)

Формула (18) предназначена для вычисления вероятности безотказной работы оператора. Подставим в формулу (18) значение времени согласно индивидуальному заданию t=1000:

2. 6 Вычисление вероятности безотказной работы аппаратно-программного комплекса

Формула вероятности безотказной работы аппаратно-программного комплекса, ввиду того, что отказы аппаратуры и программного обеспечения и ошибки оператора взаимно независимы, будет иметь следующий вид:

; (19)

3. Вычисление вероятности безотказной работы в течении времени

В задании требуется рассчитать вероятность безотказного функционирования аппаратно-программного комплекса в течение 1000 часов. Для этого подставим значения полученные при вычислении формул (4), (9), (12), (15) и (18) в формулу (19) и получим:

Подставим все в формулу (16) и получим:

Получаем ответ: 0,831, т. е. вероятность безотказной работы аппаратно программного комплекса в течении 1000 часов равна 0,831.

4. Вычисление средней наработки на отказ аппаратно-программного комплекса

Получаем ответ: 1386 часов, т. е. среднее время наработки на отказ аппаратно-программного комплекса равна 1386 часам.

Приложение

unit ScreenSize;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DsgnIntf;

type

TErrorSwitchNotifyEvent = procedure (Sender: TObject; ErrorCode: word) of object;

TScreenSize = class (TComponent)

private

FOnBeforeSwitch: TNotifyEvent;

FBitsCount: byte;

FWidth: word;

FHeight: word;

FAutoSwitch: boolean;

FOnErrorSwitch: TErrorSwitchNotifyEvent;

procedure SetBitsCount (const Value: byte);

procedure SetHeight (const Value: word);

procedure SetWidth (const Value: word);

procedure SetAutoSwitch (const Value: boolean);

{Private declarations}

protected

{Protected declarations}

public

{Public declarations}

constructor Create (anOwner: TComponent); override;

destructor Destroy; override;

procedure Switch;

procedure RestoreMode;

published

{Published declarations}

property OnBeforeSwitch: TNotifyEvent read FOnBeforeSwitch write FOnBeforeSwitch;

property OnErrorSwitch: TErrorSwitchNotifyEvent read FOnErrorSwitch write FOnErrorSwitch;

property Width: word read FWidth write SetWidth;

property Height: word read FHeight write SetHeight;

property BitsCount: byte read FBitsCount write SetBitsCount;

property AutoSwitch: boolean read FAutoSwitch write SetAutoSwitch;

end;

function ChangeDisplaySettingsX (lpDevMode: Pointer; dwFlags: DWORD): Longint; stdcall;

procedure Register;

implementation

procedure Register;

begin

RegisterComponents ('Ray Adams', [TScreenSize]);

end;

function ChangeDisplaySettingsX; external user32 name 'ChangeDisplaySettingsA';

{TScreenSize}

constructor TScreenSize. Create (anOwner: TComponent);

begin

inherited Create (anOwner);

Width: =640;

Height: =480;

BitsCount: =16;

end;

destructor TScreenSize. Destroy;

begin

ChangeDisplaySettingsx (nil, 0);

inherited Destroy;

end;

procedure TScreenSize. RestoreMode;

begin

ChangeDisplaySettingsx (nil, 0);

end;

procedure TScreenSize. SetAutoSwitch (const Value: boolean);

begin

FAutoSwitch:= Value;

end;

procedure TScreenSize. SetBitsCount (const Value: byte);

begin

FBitsCount:= Value;

end;

procedure TScreenSize. SetHeight (const Value: word);

begin

FHeight:= Value;

end;

procedure TScreenSize. SetWidth (const Value: word);

begin

FWidth:= Value;

end;

procedure TScreenSize. Switch;

var

dMode: TDeviceMode;

res: word;

begin

dMode. dmPelsWidth:=FWidth;

dMode. dmPelsHeight:=FHeight;

dMode. dmBitsPerPel:=FBitsCount;

dMode. dmDisplayFlags:=DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT;

dMode. dmSize:=SizeOf (dMode);

res: =ChangeDisplaySettings (dmode, 0);

if res< >DISP_CHANGE_SUCCESSFUL then if assigned (FOnErrorSwitch) then FOnErrorSwitch (Self, res);

end;

end.

ПоказатьСвернуть
Заполнить форму текущей работой