일단 씻고 나가자

25.03.04 본문

Study/닥치는 대로 주워 담기

25.03.04

일단 씻고 나가자 2025. 3. 4. 23:26

2025. 03. 04 화요일

 

- [Java] 숫자로 된 String 문자열을 stream으로 한 글자씩 나누어 int[]에 담는 방법?

: streamprimitive 자료형 대신 Wrapper을 사용하기 때문에, chars()로 바꿀 땐 주의.

 

String str = “123123”;

 

// chars() 이용

int[] arr = str.chars().boxed().mapToInt(Character::getNumericValue).toArray();

 

// split() 이용

int[] arr = Arrays.stream(str.split(“”)).mapToInt(Integer::parseInt).toArray();

 

 

- [OS] 은행원 알고리즘?

: dead lock의 회피를 위한 알고리즘.

 

현재 프로세스에게 줄 수 있는 각 자원의 총량을 계산하고,

특정 프로세스가 현재 필요한 자원이, 줄 수 있는 자원의 총량보다 낮으면

해당 프로세스에게 모든 자원을 부여 후, 할 일을 마치고 사용하던 자원을 반납하게 해서

할당할 수 있는 자원의 총량을 점차 늘리며 해결하는 알고리즘.

 

관련 용어는 다음과 같다.

* Max (프로세스가 요구하는 최대 자원)

* Allocation (프로세스별 현재 가지고 있는 자원)

* Available (시스템이 부여할 수 있는 현재 자원)

 

* 안전상태 (특정 자원 할당 순서에 의해 모든 프로세스가 활동을 완료할 수 있는 상태)

* 불안전상태 (어떤 방법으로도 프로세스 전체가 활동을 완료할 수 없는 상태 = deadlock)

* 안전순서열 (안전상태를 만들기 위해 자원을 할당할 프로세스의 순서)

 

하지만 은행원 알고리즘은 자원 수 파악 힘듦, 다중 프로그래밍 시스템에서의 사용자 변화,

알고리즘 적용 시의 시스템 과부하, 프로세스는 자원을 보유한 상태로 끝낼 수 없음, 불안전상태 방지를 위한 자원 이용도 낮음 등의 단점이 있다.

 

https://hoyeonkim795.github.io/posts/bankers/

https://velog.io/@minu-j/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%A7%8C%ED%99%94%EB%A1%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-%EC%9D%80%ED%96%89%EC%9B%90-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B5%90%EC%B0%A9%EC%83%81%ED%83%9C-%ED%9A%8C%ED%94%BC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

'Study > 닥치는 대로 주워 담기' 카테고리의 다른 글

25.03.11  (0) 2025.03.11
25.03.05  (0) 2025.03.05
25.02.26  (0) 2025.02.26
25.02.25  (0) 2025.02.25
25.02.24  (0) 2025.02.24