@Override
	public void run() {		

		if(current_process == null){
			current_process = the_scheduler.nextProcess();
		}
		while(true){ //not interrupted or observable 
			try {
				if(current_process.getState() == Process.State.BLOCKED){
					if(current_process.getNeed() == Process.ProcessNeed.IO){
						the_scheduler.waitIO(current_process);
					}
					update(null, null);
				}else {
					//System.out.println(SharedMemory.getInstance());
					//System.out.println("Instruction");
					current_process.nextInstruction();
					//System.out.println("Its doing things");
				}
			} catch (SegmentationException e) {
				e.printStackTrace();
			
			}
		} 
	}