본문 바로가기

분류 전체보기155

[운영체제] I/O 처리 방식 : Synchronous/Asynchronous & Blocking/Non-Blocking ✔️ Synchronous(동기) vs Asynchronous(비동기)►Synchronous : 요청이 들어온 순서에 맞게 하나씩 처리하는 방식으로, 요청 후 결과가 와야만 다음 작업이 이루어짐.              ↕︎►Asynchronous : 하나의 요청이 끝나기 전에 다른 요청을 동시에 처리할 수 있는 방식 ►Synchronous (동기)Synchronous(동기)의 경우 요청된 작업이 완료되어야 다음 작업을 수행한다.  ►Asynchronous (비동기)Asynchronous(비동기)의 경우 요청된 작업의 완료 여부를 따지지 않고 바로 다음 작업을 수행한다.호출되는 함수에게 callback을 전달해서 작업을 완료하면 실행하도록 한다.  ➕ Callback : 어떤 이벤트가 발생하거나 특정 .. 2024. 8. 27.
[백준] 11726 2xn 타일링 (자바) : DP [실버 3] 이번 포스팅에서는 DP 알고리즘 백준 11726 2xn 타일링 문제를 풀어보도록 하겠습니다. 상세한 설명 포함 !! ✔️ 문제 설명 (펼치기)더보기 문제2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. ✔️ 문제 풀이[의식의 흐름] 1. 처음에는 n이라는 숫자를 1의 배수의 합과 2의 배수의 합으로 나타내야 한다고 생각했다. 2. a+2b = n 이라는 방정식을 세웠다 .3. for 문을 활용해서 a와 b를 어떻게든 구할 수 있겠다. 4. n이 5일 때 2x1 타일이 1개이고 1x2 타일이 2개 일 때, 각 타일을 어디다가 배치할지에 대한 고민이 생긴다. 위의 그림처럼 타일을 배치하는거에 따.. 2024. 8. 26.
[백준] 2579 계단 오르기(자바) : DP [실버3] ✔️ 문제 설명더보기문제계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다.예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다.계단 오르는 데는 다음과 같은 규칙이 있다.계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다.연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다.마지막 도착 계단은 반드시 밟아야 한다.따라서 첫 번째 .. 2024. 8. 26.
[운영체제] 페이지 교체 알고리즘 운영체제는 주기억장치(Main Memory) 보다 더 큰 용량의 프로그램을 실행하기 위해 프로그램의 일부만 주기억장치에 적재하여 사용한다. 이를 가상메모리 기법이라고 한다. ✔️ 페이지 교체(page replacement)란?페이지 교체란 ?  페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치(=Main Memory)에 적재되어 있지 않을 시, 해당 페이지를 찾아 주기억장치의 빈 프레임에 로딩해야한다.하지만 이때 빈 프레임이 없을 경우 1)메모리에 올라와 있는 페이지 중 하나를 디스크로 쫓아내(page-out), 2)메모리에 빈 공간을 확보한 후 3)새로운 페이지를 메모리에 올려야한다(page-in).이러한 과정이 페이지 교체(page replacement) 이다. • Victim.. 2024. 8. 26.
[운영체제] Paging(페이징) 과 Segmentation(세그먼테이션) ✔️ 페이징과 세그먼테이션이 필요한 이유어떠한 프로그램을 실행할 때, 프로그램들을 메모리 공간에 연속적으로 할당하게 된다. 만약 여러 프로그램들이 메모리에 할당되고 해제되는 것이 반복되다 보면, 메모리 공간이 조각조각 나뉘게 되어 사용 가능한 메모리 공간이 충분함에도 불구하고 프로그램에 메모리를 할당하는 것이 불가능한 상태가 발생한다.  이러한 현상을 Memory Fragmentation(메모리 단편화) 라고 한다.  고정 분할 기법 : 메인 메모리가 고정된 파티션으로 분할 → 내부 단편화 발생 동적 분할 기법 : 파티션들이 동적 생성되며 자신의 크기와 같은 파티션에 적재 →외부 단편화 발생 내부 단편화 ( Internal Fragmentation ) → 오른쪽 그림에 해당: 메모리를 할당할 때 프로세스.. 2024. 8. 25.
[운영체제] Semaphore(세마포어) & Mutex(뮤텍스) 이전 포스팅에서 Race Condition에 대해서 설명하면서, 공유 자원을 동시에 쓰지 않기 위해 한 번에 하나의 프로세스만 접근하도록 한다는 해결책을 언급하였다.  [운영체제] Race Condition(경쟁 상태)✔️ Race Condition(경쟁 상태) 정의Race Condition(경쟁 상태) 이란?경쟁 상태란 두 개 이상의 쓰레드가 공유자원에 대해 접근하려고 서로 경쟁하는 것이다. 다르게 말하면, 공유 자원에 대해 여러 쓰cse-gr.tistory.com이번 포스팅에서는 그 해결책을 구체적으로 알아보자 ! 공유된 자원에 여러 프로세스가 동시에 접근하면, Race Condition 이라는 문제가 발생하고이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근 할 수 있도록 1) Semaph.. 2024. 8. 24.