드디어 기대하고 기대하던 집중 세미나가 끝났습니다...!!

와~~~~~~~~~

그러나.........

저희에겐 단기 과제라는 큰 산이 남아있답니다.....

그게 오늘 토요일 저녘쯤에? 분과장 컨택이 있습니다.

그리고 오늘 시간을 다 보냈던 운영체제.... 참 재밌습니다.???

보람행님께서 주신 충고 잘 새겨 듣겠습니다...

잠줄이며... 공부에 매진 하겠습니다. 아자아자!!

그래도 집중 세미나 기간이 끝나서 기쁩니다.^^ 우후!!

내일은 단기 과제 안드로이드 좀 만들고 테트리스 하는거 좀 보고

운영체제 과제에 온 힘들 쏟겠습니다. 그리고...

CV는 과제가 먼지도 몰라 ㅠㅠㅠㅠ

우짜지 ㅠㅠ 도와주세요

'일기' 카테고리의 다른 글

시작 발표를 마치고...  (1) 2012.02.28
단기 컨택의 하루  (1) 2012.02.26
역량평가 2일째  (1) 2012.02.22


오늘... 시간을 다 버린 주요인 소스!! ㅠㅠ

SRTF 스케줄링....

디스크 스케줄링....

아직도 잘 몰라 ㅠㅠ

그러나 어찌저찌해서 제출.. 아 공부 하자.
//메인 소스
public class process {
 
 STRF STRF[];
 public static void main(String[] args) {
  new Scheduling();
 }
}

//설정
public class STRF {
 private int number;
 private int arrive_time;
 private int wait_time;
 private int burst_time;
 
 public STRF(int number,int arrive,int brust){
  this.number=number;
  this.arrive_time=arrive;
  this.burst_time=brust;
  this.wait_time=0;
 }

 public void addwaittime(){
  wait_time++;
 }
 public void deletetime(){
  burst_time--;
 }
  
 public int getNumber() {
  return number;
 }
 public void setNumber(int number) {
  this.number = number;
 }
 public int getArrivalTime() {
  return arrive_time;
 }
 public void setArrivalTime(int arrive) {
  this.arrive_time = arrive;
 }
 public int getBurstTime() {
  return burst_time;
 }
 public void setBurstTime(int burstTime) {
  this.burst_time = burstTime;
 }

 public int getWaitingTime() {
  return wait_time;
 }

 public void setWaitingTime(int waitingTime) {
  this.wait_time = waitingTime;
 } 

}

//주요소스
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;


public class Scheduling {
 
 private ArrayList<STRF> processList = new ArrayList<STRF>();
 private ArrayList<STRF> waitingList = new ArrayList<STRF>();
 
 Scheduling() {
  System.out.println("생성자 시작");
  int nextArrival = 0;
  int processIndex = 0;
  int waitingTime = 0;
  STRF currentProcess = null;
  
  try {
   setFile("test\\2.inp.txt");
  }  catch (IOException e) {
   System.out.println("IOException!!");
  }
  
  sortProcess();  
  
  nextArrival = processList.get(0).getArrivalTime();
  int time=0;
  for(time =0;;time++){
   while(time == nextArrival){
    if(currentProcess == null){
     currentProcess = processList.get(processIndex);
    }else {
     waitingList.add(processList.get(processIndex));
    }
    processIndex++;
    if(processIndex == processList.size()){
     nextArrival = 0;
    } else {
     nextArrival = processList.get(processIndex).getArrivalTime();
    }
   }
   if(currentProcess != null) {
    if(waitingList.size() != 0) {
     sortWaitingList();
     if(currentProcess.getBurstTime() > waitingList.get(0).getBurstTime()){
      waitingList.add(currentProcess);
      currentProcess = waitingList.get(0);
      waitingList.remove(0);
     }
    }    
    if(currentProcess.getBurstTime() == 0) {
     if(waitingList.size() != 0) {
      currentProcess = waitingList.get(0);
      waitingList.remove(0);
     } else if(nextArrival == 0) {
      break;
     } else {
      continue;
     }
    }    
    currentProcess.deletetime();
    waitingTime += waitingList.size();
   }   
   System.out.println("타임 플러스");
  }
  
  try {
   printProcess(waitingTime);
  } catch (IOException e) {
   System.out.println("IOException!!");
  }
 }
 
 void setFile(String filename) throws NumberFormatException, IOException{
  
  int count;

  FileReader fr = new FileReader(filename);
  BufferedReader br = new BufferedReader(fr);
  
  count = Integer.parseInt(br.readLine());
  System.out.println("count = "+count);
  for(int i=0;i<count;i++){
   System.out.println("asdf");
   String[] item = br.readLine().split(" ");
   STRF process = new STRF(Integer.parseInt(item[0]), Integer.parseInt(item[1]), Integer.parseInt(item[2]));
   processList.add(process);
  }   
  
  br.close();
  fr.close();
 }
 
 void printProcess(int waitingTime) throws IOException {
  System.out.println("파일 출력");
  FileWriter fw = new FileWriter("test\\2.out.txt");
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
  pw.println(waitingTime);
  System.out.println(waitingTime);
  pw.close();
  bw.close();
  fw.close();
 }
 
 void sortProcess() {
  System.out.println("프로세스 시작");
  for(int i=0;i<processList.size()-1;i++){
   for(int j=0;j<processList.size()-1-i;j++){
    if(processList.get(j).getArrivalTime() > processList.get(j+1).getArrivalTime() ||
     (processList.get(j).getArrivalTime() == processList.get(j+1).getArrivalTime() && processList.get(j).getNumber() > processList.get(j+1).getNumber())){
     STRF temp = processList.get(j);
     processList.remove(j);
     processList.add(j+1, temp);
     
    }
   }
  }  
 }
 
 void sortWaitingList() {
  for(int i=0;i<waitingList.size()-1;i++){
   for(int j=0;j<waitingList.size()-1-i;j++){
    if(waitingList.get(j).getBurstTime() > waitingList.get(j+1).getBurstTime() ||
     (waitingList.get(j).getBurstTime() == waitingList.get(j+1).getBurstTime() && waitingList.get(j).getBurstTime() > processList.get(j+1).getBurstTime())){
     STRF temp = waitingList.get(j);
     waitingList.remove(j);
     waitingList.add(j+1, temp);
    }
   }
  }
 }
}


하.. 답답하네 ㅠㅠ 이거 엄청 오래 했네요 ㅠㅠ

내일부터 FCFS하고 SSTF 공부해서 올릴께요

'IT 공부 > 자료구조' 카테고리의 다른 글

SRTF  (2) 2012.02.28
SSTF Scheduling  (0) 2012.02.28
FCFS  (2) 2012.02.25
[자료구조] Linked List(링크드리스트)  (0) 2012.02.22

오늘 구상을 꾸몄다.

우선 구상을 꾸민것이라서 컴퓨터로 하지 않고

종이에 끄젹여서 만들었다.

부족하지만 우선 내생각대로 옮겨 적었다.

첫장은 서버로써 탭에 해당하는 부분,

두번째 장은 스마트폰에 클라이언트 해당한다.

<<내일>>

구성만들기!

Connectivity Application SmartPhone에 해당하는
구성도 만들기

'IT 공부 > 과제' 카테고리의 다른 글

"동기화와 비동기화 소켓 사용시 장단점"  (1) 2012.03.04
시작  (1) 2012.02.22

+ Recent posts