[프로그래머스/level 2] 메뉴 리뉴얼 - 72411
·
코딩 테스트 정복기/프로그래머스
[level 2] 메뉴 리뉴얼 - 72411문제 링크성능 요약메모리: 81.9 MB, 시간: 13.26 ms구분코딩테스트 연습 > 2021 KAKAO BLIND RECRUITMENT채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 11월 01일 01:55:25문제 설명레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다.기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성하기로 했습니다.단, 코스요리 메..
경쟁상태 해결하기 - 뮤텍스, 세마포어, 모니터
·
Computer Science/Operating System
경쟁상태 해결 조건여러 프로세스나 스레드가 공유 자원에 접근할 때 데이터의 일관성과 무결성을 보장하기 위해 아래와 같은 조건을 만족해야한다. 상호배제 (Mutual Exclusion)임계영역에 한번에 하나의 프로세스나 스레드만 접근할 수 있도록 해야함.즉, 어떤 프로세스가 임계영역에 있을 때 다른 프로세스는 그 임계영역에 들어갈 수 없음. 진행의 융통성(Progress)임계영역에 들어가려는 프로세스가 없으면, 임계영역에 들어갈 수 있는 프로세스가 이를 결정할 수 있어야 함.즉, 임계영역에 들어갈 수 있는 프로세스를 선택하는 과정이 지연되지 않고 진행되어야 함.결정은 임계영역에 있지 않은 프로세스만 참여할 수 있음. 한정 대기 (Bounded Wating)특정 프로세스가 임계영역에 들어가는 것이 무한정 지..
[백준/Silver II] N과 M (9) - 15663
·
코딩 테스트 정복기/백준
[Silver II] N과 M (9) - 15663문제 링크 성능 요약메모리: 40148 KB, 시간: 308 ms분류백트래킹제출 일자2024년 10월 24일 18:27:19문제 설명N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수 중에서 M개를 고른 수열입력 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다.출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.제출 코..
[백준/Silver III] N과 M (5) - 15654
·
코딩 테스트 정복기/백준
[Silver III] N과 M (5) - 15654문제 링크 성능 요약메모리: 83852 KB, 시간: 948 ms분류백트래킹제출 일자2024년 10월 24일 18:15:27문제 설명N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열입력 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다.출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 ..
[백준/Silver III] N과 M (2) - 15650
·
코딩 테스트 정복기/백준
[Silver III] N과 M (2) - 15650문제 링크성능 요약메모리: 11500 KB, 시간: 72 ms분류백트래킹제출 일자2024년 10월 24일 17:57:12문제 설명자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열고른 수열은 오름차순이어야 한다.입력첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.제출 코드//https://www.acmicpc.net/problem/..
공유자원과 경쟁 상태, 임계영역
·
Computer Science/Operating System
공유 자원 (Shared Resource)공유자원이란 시스템 안에서 각 프로세스, 스레드가 함께 접근할 수 있는 자원을 말한다. 공유 자원의 특징다중접근여러 프로세스나 스레드가 동시에 접근할 수 있기 때문에 관리가 필요.데이터 일관성올바르게 관리되지 않으면 데이터 일관성이 깨질 수 있음동기화 필요여러 접근을 조율하기 위한 동기화 매커니즘 필요공유 자원의 예시여러 스레드가 동시에 접근하는 전역변수여러 프로세스가 동시에 접근하는 파일메모리, 파일, 데이터베이스...  경쟁 상태 (Race Condition)두개 이상의 프로세스나 스레드가 공유 자원에 동시에 접근할 때 발생하는 문제.동시에 접근을 시도할 때 타이밍이 예상되는 결과 값에 영향을 줄 수 있는 상태. 이를 잘 해결하지 못하면 데이터 정합성, 데이터..
멀티태스킹(Multitasking)과 CPU 스케줄링(선점형, 비선점형, 라운드로빈, 우선순위 기반 스케줄링, FIFO, SFJ ...)
·
Computer Science/Operating System
멀티태스킹(Multitasking)이란?여러 프로세스 내에서 여러 작업을 동시에 수행하는 것을 의미한다. 정확히는, 멀티태스킹은 CPU의 스케줄링을 통해 "동시에 수행하는 것처럼 보이는 것"이다.멀티프로세싱은 실제로 CPU병렬 처리를 통해 동시에 작동하는 것으로 차이가 있다.   멀티태스킹 스케줄링 방식멀티프로그래밍 : 여러 프로그램이 메모리에 동시에 적재되어 CPU가 필요할 때마다 프로그램을 실행시분할 : 여러 프로세스가 동시에 실행되는 것처럼 보이도록 각 프로세스에 시간 할당량을 주고 CPU를 빠르게 전환해주는 방식실시간 시스템 : 시스템의 응답시간이 중요한 환경에서 특정 작업을 정해진 시간안에 완료해야 하는 방식  스케줄링 알고리즘비선점형 스케줄링 (Non-preemptive Scheduling)프..
프로세스의 상태
·
Computer Science/Operating System
Create , NewUser의 Job/command 요청이 커널에 등록되는 상태.커널이 등록되면서 프로세스가 생성됨.커널 안에 프로세스를 위한 PCB가 생기고 초기값이 PCB에 저장.PCB(Process Control Block) 알아보기프로세스는 생성 되었으나, 아직 준비 큐에 들어가지 않은 상태이다.이때 커널은 메모리 공간이 있는지 확인한다.fork()나 exec() 함수를 통해 프로세스가 생성된 상태이다.fork() : 부모 프로세스의 주소 공간을 그대로 복사하며, 새로운 자식 프로세스를 생성. 주소 공간만 복사할 뿐, 프로세스의 비동기 작업 등은 상속하지 않음.exec() : 새롭게 프로세스를 생성  Ready프로세스가 생성되고 커널이 "메모리 할당"을 인지하고 (implicit 하게 자원 요청..
IPC(Inter-Process Communication)
·
Computer Science/Operating System
IPC(Inter-Process Communication)란?프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 방법.ex) 브라우저를 띄워 네이버 서버와 HTTP 통신해서 html 등의 파일을 가져오는 것 IPC의 종류공유메모리파일소켓파이프메세지 큐위 다섯가지 IPC 종류를 하나씩 살펴보자  공유메모리 (Shared Memory)여러 프로세스가 메모리를 공유하여 서로 통신할 수 있도록 하는 것.어떠한 매개체를 통해 데이터를 주고 받는게 아니라 메모리 자체를 공유.때문에 불필요한 데이터 복사의 오버헤드가 발생하지 않음.고속 데이터 전송 : 메모리에 직접 접근하므로 속도가 가장 빠른 방법같은 메모리 영역을 여러 프로세스가 공유하기 때문에 동기화 필요  파일(File)디스크에 저장된 데이터를 기반으로 통신..