Автор: Пользователь скрыл имя, 09 Марта 2011 в 11:30, курсовая работа
Цель исследования – выявить эффективность алгоритмов кэширования данных LRU, LFU.
Задачи исследования:
•проанализировать предметную область;
•спроектировать и реализовать программную систему для анализа эффективности алгоритмов кэширования данных LRU, LFU;
•провести сравнительный анализ эффективности алгоритмов кэширования данных LRU, LFU.
Введение 3
1.Анализ предметной области 4
1.Структура кэш-памяти и схема ее работы 4
2.Алгоритмы кэширования 5
3.Ассоциативность и принципы локальности кэш-памяти 6
4.Словарь предметной области 7
2.Проектирование архитектуры разрабатываемой системы 8
1.Иерархия классов 8
2.Блок – схемы алгоритмов 8
3.Реализация системы на языке высокого уровня 10
4.Тестирование приложения 11
5.Исследование эффективности алгоритмов 13
Заключение 17
Список использованной литературы 18
Приложение 19
private CPU proc;
private int data[];
private Cache cache;
private RAM memory;
private int Volume;
private int t=0;
boolean g
= true;
public Form() {
initComponents();
jLabel9.setVisible(false);
}
//Разбиваем строку, в которой обращения процессора, на отдельные элементы и записываем в массив
public void generateProc(){
StringTokenizer tokenizer = new StringTokenizer(AreaCPU.
data = new int[tokenizer.countTokens()];
for (int i = 0; tokenizer.hasMoreTokens(); i++) {
data[i]
= Integer.parseInt(tokenizer.
}
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {
jPanel2 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
VolumeRAM = new javax.swing.JTextField();
VolumeCache = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jButton3 = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jTextArea2 = new javax.swing.JTextArea();
jLabel7 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jLabel6 = new javax.swing.JLabel();
LFUbutton = new javax.swing.JButton();
LRUbutton = new javax.swing.JButton();
jPanel4 = new javax.swing.JPanel();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jTextField4 = new javax.swing.JTextField();
jTextField5 = new javax.swing.JTextField();
jTextField6 = new javax.swing.JTextField();
jTextField7 = new javax.swing.JTextField();
jTextField8 = new javax.swing.JTextField();
jLabel15 = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
AreaCPU = new javax.swing.JTextArea();
RefCPU = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jPanel6 = new javax.swing.JPanel();
jCheckBox1 = new javax.swing.JCheckBox();
jSlider2 = new javax.swing.JSlider();
jScrollPane4 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jLabel16 = new javax.swing.JLabel();
jLabel17 = new javax.swing.JLabel();
jLabel18 = new javax.swing.JLabel();
jTextField9 = new javax.swing.JTextField();
jPanel5 = new javax.swing.JPanel();
jProgressBar1 = new javax.swing.JProgressBar();
jScrollPane3 = new javax.swing.JScrollPane();
Statistics = new javax.swing.JTextArea();
jLabel9 = new javax.swing.JLabel();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenuItem2 = new javax.swing.JMenuItem();
setDefaultCloseOperation(
getContentPane().setLayout(new org.netbeans.lib.awtextra.
jPanel2.setBorder(javax.swing.
jLabel3.setFont(new java.awt.Font("Tahoma", 0, 18));
jLabel3.setText("Память");
jLabel4.setText("Объем оперативной памяти");
jLabel5.setText("Объем кэш памяти");
jButton3.setText("Ввести");
jButton3.addActionListener(new java.awt.event.ActionListener(
public void actionPerformed(java.awt.
jButton3ActionPerformed(evt);
}
});
jTextArea2.setColumns(20);
jTextArea2.setLineWrap(true);
jTextArea2.setRows(5);
jTextArea2.setEnabled(false);
jScrollPane2.setViewportView(
jLabel7.setText("Данные ОП");
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(
jPanel2.setLayout(
jPanel2Layout.
jPanel2Layout.
.addGroup(jPanel2Layout.
.addGroup(jPanel2Layout.
.addGroup(jPanel2Layout.
.addContainerGap()
.addComponent(jLabel3))
.addGroup(jPanel2Layout.
.addGroup(jPanel2Layout.
.addGroup(jPanel2Layout.
.addGroup(jPanel2Layout.
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.
.addComponent(jScrollPane2, javax.swing.GroupLayout.
.addComponent(jLabel7, javax.swing.GroupLayout.
.addContainerGap(37, Short.MAX_VALUE))
);
jPanel2Layout.
jPanel2Layout.
.addGroup(jPanel2Layout.
.addContainerGap()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.
.addGroup(jPanel2Layout.
.addGroup(jPanel2Layout.
.addGap(12, 12, 12)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.
.addComponent(VolumeRAM, javax.swing.GroupLayout.
.addGap(18, 18, 18)
.addComponent(jLabel5)
.addGap(18, 18, 18)
.addComponent(VolumeCache, javax.swing.GroupLayout.
.addGap(18, 18, 18)
.addComponent(jButton3))
.addGroup(jPanel2Layout.
.addGap(3, 3, 3)
.addComponent(jLabel7)
.addPreferredGap(javax.swing.
.addComponent(jScrollPane2, javax.swing.GroupLayout.
.addContainerGap(42, Short.MAX_VALUE))
);
getContentPane().add(jPanel2, new org.netbeans.lib.awtextra.
jPanel3.setBorder(javax.swing.
jLabel6.setFont(new java.awt.Font("Tahoma", 0, 18));
jLabel6.setText("Алгоритмы кэширования");
LFUbutton.setText("LFU");
LFUbutton.setEnabled(false);
LFUbutton.addActionListener(
public void actionPerformed(java.awt.
LFUbuttonActionPerformed(evt);
}
});
LRUbutton.setText("LRU");
LRUbutton.setEnabled(false);
LRUbutton.addActionListener(
public void actionPerformed(java.awt.
Информация о работе Алгоритмы кэширования данных и их эффективность