til(6)
-
[til_211130][운영체제] CPU 스케줄링
- 비선점형 알고리즘(스케줄링) : 운영체제가 자원에 대한 우선권을 포기한 상태이다. 따라서 어떤 프로세스가 실행 상태에 들어가서 cpu를 사용하면 프로세스가 종료되거나 자발적으로 대기상태에 들어갈 때까지 계속 실행된다. 운영체제가 중간에 빼앗을 수 없다. 비선점형 알고리즘의 종류 => FCFS, SJF, HRN 스케줄링 - 선점형 알고리즘(스케줄링) : 운영체제가 자원을 선점하고 자원을 프로세스에게 빌려주는 형태이다. 따라서 어떤 프로세스가 실행 상태에 있어도 운영체제가 필요하다고 판단되면 그 프로세스의 작업을 강제로 중단시키고 자원을 다시 가져갈 수 있다. 하나의 프로세스가 cpu를 독점할 수 없고 운영체제가 관리하기 때문에 빠른 응답 시간을 요구하는 대화형 시스템이나 시분할 시스템에 적합하다. 선점..
2021.11.30 -
[til_211126][java] 객체배열
�오늘의 궁금증 ↓더보기 클릭 더보기 �오늘 궁금증: * 왜 main 이 아닌 클래스에서 배열을 생성하면 오류가 발생하는가? 여기서 오류는,,, 직접적인 오류가 아니라 약간 다른 데서 이상하게 튕기듯이? 오류가 나타남. 이렇게 생성한 두줄 전체에 빨간 줄이 그어지는 오류가 아니라, 저렇게 ;에 빨간 줄이 그어짐.. 어떻게 생성때문인 줄 알았냐면 배열 생성하는 저 두 줄을 지우면 또 빨간 줄 사라짐.사실 이게 정확한 원인이 뭔지는 모르겠다.main이 아닌 클래스에서는 배열을 생성하지 못하는 건가...? 해결 ☞ 일단 객체 배열의 개념을 완전 오해함. 객체 배열은 객체 여러개를 배열로 저장하는 것이지, 배열을 지닌 객체를 만드는 것이.. 아니다.. 근데 그렇다 하더라도 그럼 클래스를 만들 때 그 안에 일반 ..
2021.11.26 -
[til_211125][java] java API 활용한 예제 - Math.random()과 .substring()
이번 주는 java API, 그 중에서도 string관련 메소드들을 활용하는 실습을 했다. 문제 1) 60, 70, 80, 100 의 숫자 중에서 임의의 숫자를 받아오는 메소드 만들기 사실 지난 시간 수업을 제대로 안 들어서 random메소드를 활용하는 방법을 잘 모른 상태에서 프린트물에 적혀있는 것만 보고 나름 머리를 굴린다고 굴리고 키보드 두들겨 봤는데: int speed_limit() { while (true) { // while문 무한루프 문제 발생 !! int i = (int)Math.random()*100+1; if (i==60 || i==70 || i==80 || i==100) { return i; } } } ** 오답임. 아니 글쎄 프린트문으로 출력을 해봐도 아무것도 출력이 안 되는 것이다..
2021.11.25 -
[til_211123][java] 메시지패싱
용이 성을 공격하는 메시지패싱 class Castle { private int strength; void set_st (int st) { if (st> 성의 내구력은10 용의 화력은5 성의 내구력은5 성의 내구력은0 성이 무너진다 ~ 성의 내구력은-5 ✔ 메시지패싱의 두 단계: 1) 상대 객체를 인자로 전달 2) 상대 메소드 호출 ✔ 캡슐화: 외부로부터의 접근, 임의 변경 등의 위험으로부터 보호하기 위해 차단.. by 클래스를 만드는 것 자체가 캡슐화 과정. 객체(=클래스의 모양대로 만들어진 실체)의 멤버들 (메소드와 필드) 를 외부에서 직접 접근하지 못하도록 접근지정자 private을 이용. 객체 외부에서 비공개 멤버 (private 멤버) 접근하려면 공개된 메소드를 통해 접근. 여기서 공개된 메소드를..
2021.11.23 -
[til_211123] [java] 입력받은 문자 중 공백을 ','로 대체하는 클래스
융합프로그래밍 강의교안 예제4-8: 인자로 배열이 전달되는 예 > import java.util.Scanner; class Char { String str; char a[]; void printCharArray(String str) { this.str = str; a = new char[str.length()]; /// str.length() : 문자열 길이 !!! for (int i=0; i
2021.11.23 -
[til_211103] [java] 캡슐화와 접근지정자
캡슐화 캡슐화란, 1) 객체를 캡슐로 싸서, 2) 내부를 볼 수 없게 하는 것 (=> 외부의 접근으로부터 객체를 보호하는 것) 이는 재사용성과 생산성에 도움을 준다. 자바에서는 클래스를 만드는 것 자체가 캡슐화 작업이다. 객체 모양의 틀을 선언하는 것, 즉 클래스를 만드는 것이 캡슐화로, method (멤버 함수) 와 field (멤버 변수)가 클래스라는 캡슐 안에 구현되어 외부로부터 보호받는다. class를 만들 때 field를 private으로 설정해두고, field값을 외부에서 접근하거나 변경하고 싶다면 메소드를 통해서만 가능하다. 값을 보여주거나 변경할 수 있는 메소드를 만들어두고, 그 메소드에 '음수는 입력불가'라든지, '두 글자 이상 입력 가능' 이라든지 내가 필요로 하는 제한사항들을 걸어두어..
2021.11.03