Алгоритмы кэширования данных и их эффективность

Автор: Пользователь скрыл имя, 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

Файлы: 4 файла

Графики.xlsx

— 16.78 Кб (Открыть, Скачать)

Курсовая работа.docx

— 413.90 Кб (Открыть, Скачать)

Приложение.docx

— 41.71 Кб (Скачать)

    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.getText(),"|");

        data = new int[tokenizer.countTokens()];

        for (int i = 0; tokenizer.hasMoreTokens(); i++) {

                data[i] = Integer.parseInt(tokenizer.nextToken()); 

        }

    }

    @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(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 

        jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 

        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.event.ActionEvent evt) {

                jButton3ActionPerformed(evt);

            }

        }); 

        jTextArea2.setColumns(20);

        jTextArea2.setLineWrap(true);

        jTextArea2.setRows(5);

        jTextArea2.setEnabled(false);

        jScrollPane2.setViewportView(jTextArea2); 

        jLabel7.setText("Данные ОП"); 

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);

        jPanel2.setLayout(jPanel2Layout);

        jPanel2Layout.setHorizontalGroup(

            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addGroup(jPanel2Layout.createSequentialGroup()

                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                    .addGroup(jPanel2Layout.createSequentialGroup()

                        .addContainerGap()

                        .addComponent(jLabel3))

                    .addGroup(jPanel2Layout.createSequentialGroup()

                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addGroup(jPanel2Layout.createSequentialGroup()

                                .addContainerGap()

                                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

                                    .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                                    .addComponent(jLabel5)

                                    .addComponent(VolumeRAM)

                                    .addComponent(VolumeCache)))

                            .addGroup(jPanel2Layout.createSequentialGroup()

                                .addGap(43, 43, 43)

                                .addComponent(jButton3)))

                        .addGap(18, 18, 18)

                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)

                            .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))))

                .addContainerGap(37, Short.MAX_VALUE))

        );

        jPanel2Layout.setVerticalGroup(

            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addGroup(jPanel2Layout.createSequentialGroup()

                .addContainerGap()

                .addComponent(jLabel3)

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                    .addGroup(jPanel2Layout.createSequentialGroup()

                        .addGap(12, 12, 12)

                        .addComponent(jLabel4)

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                        .addComponent(VolumeRAM, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                        .addGap(18, 18, 18)

                        .addComponent(jLabel5)

                        .addGap(18, 18, 18)

                        .addComponent(VolumeCache, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                        .addGap(18, 18, 18)

                        .addComponent(jButton3))

                    .addGroup(jPanel2Layout.createSequentialGroup()

                        .addGap(3, 3, 3)

                        .addComponent(jLabel7)

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                        .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)))

                .addContainerGap(42, Short.MAX_VALUE))

        ); 

        getContentPane().add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, 350, 240)); 

        jPanel3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 

        jLabel6.setFont(new java.awt.Font("Tahoma", 0, 18));

        jLabel6.setText("Алгоритмы кэширования"); 

        LFUbutton.setText("LFU");

        LFUbutton.setEnabled(false);

        LFUbutton.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                LFUbuttonActionPerformed(evt);

            }

        }); 

        LRUbutton.setText("LRU");

        LRUbutton.setEnabled(false);

        LRUbutton.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

Титульник и содержание.docx

— 21.73 Кб (Открыть, Скачать)

Информация о работе Алгоритмы кэширования данных и их эффективность