본문 바로가기

분류 전체보기

(403)
OS - 임계구역과 세마포어 Critical Section 공통 자원을 건드릴 수 있는 공간이다. 멀티 프로세싱에 의한 오류는 보통 여기서 발생한다. 해결 방안이 갖춰야하는 것 Mutual exclusion - 오직 한 쓰레드만 진입 Progress - 진입 결정은 유한 시간 내 Bounded waiting - 어느 스레드라도 유한 시간 내에 해결해야함. 프로세스/쓰레드 동기화 임계구역 문제 해결 (틀린 답 X) 프로세스 실행 순서 제어 비효율성 제거 세마포어 유명한 동기화 해결 도구 acquire() release() 세마포어는 상호베타를 위해 사용한다. void acquire(){ value--; if(value < 0){ add this process/thread to list block } } void release(){ v..
DOMIAS: Membership Inference Attacks against Synthetic Data through Overfitting Detection 논문 이론 MIA(Membership Inference Attack)는AI 모델이 어떤 데이터셋으로 학습되었는지 유추하는 공격법. 그 중에서도 DOMIAS는 데이터셋에서 적은 비중을 차지하는 부분의 데이터, 즉 원본 데이터셋에서 과적합된 데이터셋을 찾아내는데 효과적인 성능을 보임. 논문의 제목이 DOMIAS: Membership Inference Attacks against Synthetic Data through Overfitting Detection인 이유임. Attack AUC: 특정 데이터가 학습 데이터셋에 속하는지 추론하는데 얼마나 효과적인가를 나타냄. 값이 높다면 공격에 대해 민감하다는 의미. DOMIAS는 과적합된 모델에 대해 좋은 성능을 나타내기 때문에 모델 Epoch이 높을수록 다른 모델..
백준 1092번 배( C++) https://www.acmicpc.net/problem/1092 1092번: 배 첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보 www.acmicpc.net 정렬, 그리디 알고리즘 문제이다. 난 그리디 알고리즘이 약한 것 같다. - 내 접근법 먼저 Crain과 Weight는 최대한 비슷한 값 끼리 매져주는 것이 좋다. 그러므로 난 Crain은 오름차순, Weight는 내림차순 정렬을 해주었다. 그리고 Crain의 시작부분과 Weight의 시작부분부터 비교하며 크레인에 적재가 가능하면 Weight 벡터에서 삭제하고 다음 크레인의 상태로 ..
백준 25634번 - 전구 상태 뒤집기 (C++) https://www.acmicpc.net/problem/25634 25634번: 전구 상태 뒤집기 $N$개의 전구가 일렬로 세워져 있다. 전구는 켜져 있을 수도 있고 꺼져 있을 수도 있다. 만약 $i$번째 전구가 켜져 있다면 그 전구의 밝기는 $a_i$이다. 연우는 $N$개의 전구 중 연속한 전구를 한 개 www.acmicpc.net 문제 조건 - 한 시퀀스가 모두 바뀌었을 때를 가정한다. 길이가 3이면 1,2,3,1~2, 3~4, 1~3 이렇게 모든 전구를 바꾸어야한다. 반드시 단 1번은 바꾸어야한다. 내 접근 - dp로풀어야한다. 그리고 누적합으로 구하는 것인데 어떻게 하는지 모르겠어서 일단 dp로 생각해보기로 했다. 그러나 dp[index] = index까지의 최적합 으로 구하기에는 따져야할 것이..
OS - 프로세스 동기화 개념 프로세스 동기화 프로세스 병행 (Concurrency) OS는 아주 빠른 시간에 프로세스를 스위칭한다. 때문에 사실은 하나의 프로세스만 화면에서 실행중이지만 마치 함께 실행중인 것 처럼 보인다. 이것을 프로세스 병행, 동시성이라 한다. 독립 프로세스와 협력 프로세스 독립 프로세스 단일 처리 시스템에서 수행하는 병행 프로세스, 다른 프로세스와 영향을 받지 않으며 독립적으로 실행된다. 협력 프로세스 우리가 사용하는 많은 프로그램은 협력 프로세스이다. 두 프로세스가 동일한 파일을 사용할 수도 있고 프로세스 하나가 파일을 읽는 동안 다른 프로세스가 쓰기를 실행하려 할 수도 있다. 프로세스 동기화 위 처럼 프로그램들이 하나의 자원에 접근하려하면 어떤 일이 발생할까. 가장 유명한 예제는 바로 은행 예제이다. A씨의..
백준 14226번 - 이모티콘 (C++) https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 문제조건 - 이모티콘의 개수를 늘리는 방법은 오직 붙여넣기 뿐이다. 화면의 이모티콘은 임의로 늘릴 수 없으나 삭제는 가능하다. 그리고 각 행동은 1초의 작업시간을 가진다. 내 접근 - 당연히 BFS 문제라고 생각했다. 최소,최단거리 문제이고 할 수 있는 행동이 3가지이다. 그러므로 BFS문제라 생각하는 것이 타당하다. 그러나 문제는 방문처리이다. 한 번 갔던 이모티콘 개수라 해도 담고있는 클립보드의..
OS - CPU 스케줄링(3), 프로세스의 생성과 소멸, 쓰레드 MultiLevel Queue 스케줄링 다단계 큐 스케줄링은 이전에 봤던 것 처럼 하나의 큐를 사용하는 것이 아닌 여러개의 큐를 사용하는 방법이다. 앞어 많은 프로세스들이 있었는데 운영체제 단계에서 인터럽트를 처리하는 프로세스도 있고 사용자와 인터랙티브하는 프로세스, 배치 프로세스, 컴파일러 등 많은 프로세스가 있는데 이들을 같은 큐로 관리하기 어렵기 때문에 나온 개념이다.' 위의 순서대로 우선순위가 매겨져 각 큐는 절대적인 우선순위를 가진다. 아래의 프로세스 큐가 실행되려면 위의 프로세스 큐가 모두 비어있어야한다. 만약 Interactive Processes가 실행되고 있던 중 System Processes작업이 큐에 들어오면 바로 프로세서를 반납해야한다. 각각의 큐는 독립된 스케줄링 기법을 사용한다...
백준 14658번 - 하늘에서 별똥별이 빗발친다. (C++) https://www.acmicpc.net/problem/14658 14658번: 하늘에서 별똥별이 빗발친다 첫째 줄에 네 정수 N, M, L, K가 주어진다. (1 ≤ N, M ≤ 500,000, 1 ≤ L ≤ 100,000, 1 ≤ K ≤ 100) N은 별똥별이 떨어지는 구역의 가로길이, M은 세로길이, L은 트램펄린의 한 변의 길이, K는 별똥별의 수를 www.acmicpc.net 문제조건 - 별똥별의 좌표가 주어지고 천을 펼쳤을 때 최대한 좌표가 천에 포함되어야한다. 내 접근 - 일단 N,M이 50만이라 절~~~대 O(N * M)으로는 풀어낼 수 없다. 그런데 아무리 봐도 문제가 브루트포스가 아니면 풀수가 없다고 생각됐다. 그래서 일단 풀 수 있는대로 해보니 당연히 시간초과가 났다. 어떻게 풀어야..