CPU 스케줄링
·
CS 지식/[운영체제]
1. 스케줄링 조건 : 오버헤드 ↓ / 사용률 ↑ / 기아 현상 ↓ 목표 Batch System: 가능하면 많은 일을 수행. 시간(time) 보단 처리량(throughout)이 중요 Interactive System: 빠른 응답 시간. 적은 대기 시간. Real-time System: 기한(deadline) 맞추기. 2. 선점 / 비선점 스케줄링 선점 (preemptive) : OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우 (처리시간 예측 어려움) 비선점 (nonpreemptive) : 프로세스 종료 or I/O 등의 이벤트가 있을 때까지 실행 보장 (처리시간 예측 용이함) 3. 프로세스 상태 선점 스케줄링 : Interrupt, I/O or Event Completion, I/O ..
데드락 (DeadLock, 교착 상태)
·
CS 지식/[운영체제]
두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태를 말함 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 데드락이 일어나는 경우 프로세스1과 2가 자원1, 2를 모두 얻어야 한다고 가정해보자 t1 : 프로세스1이 자원1을 얻음 / 프로세스2가 자원2를 얻음 t2 : 프로세스1은 자원2를 기다림 / 프로세스2는 자원1을 기다림 ⇒ 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠짐 → 이것이 바로 DeadLock 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생 한 프로세스가 자원을 요청했을 때, 동시에 그 자원을 사용할 수 없는 상황이 발생할 수 ..
프로세스 & 스레드
·
CS 지식/[운영체제]
프로세스 프로그램을 메모리 상에서 실행 중인 작업 ⇒ 작업 중인 프로그램 스레드 프로세스 안에서 실행되는 여러 흐름 단위 기본적으로 프로세스마다 최소 1개의 스레드 소유(메인 스레드 포함) 프로세스는 각각 별도의 주소 공간 할당 (독립적) Code : 코드 자체를 구성하는 메모리 영역(프로그램 명령) Data : 전역 변수, 정적 변수, 배열 등 초기화 된 데이터는 data 영역에 저장 초기화 되지 않은 데이터는 bss 영역에 저장 .data : 전역 변수 또는 static 변수 등 프로그램이 사용하는 데이터를 저장 .BSS : 초기값 없는 전역 변수, static 변수가 저장 .rodata : const같은 상수 키워드 선언 된 변수나 문자열 상수가 저장 Heap : 동적 할당 시 사용 (new(), ..
운영체제(OS, Operating System)
·
CS 지식/[운영체제]
운영 체제사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어종료 : Windows, Linux, UNIX, MS-DOS 등운영체제의 목적사용자와 하드웨어 사이의 인터페이스를 제공해 효율적으로 응용프로그램이 동작하도록 지원시스템 자원을 효율적으로 관리하여 응용프로그램이 원활하게 동작할 수 있도록 함운영체제의 코어(핵심) 부분을 커널(Kernel)이라고 하는데, 일반적으로는 커널에 여러가지 기능(라이브러리, 시스템 프로그램 등)이 추가된 상태를 통칭해서 운영체제라고 함컴퓨터 시스템 간략 구조도운영체제의 역할1. 프로세스 관리프로세스, 스레드 / 스케줄링 / 동기화 / IPC 통신2. 저장장치 관리메모리 관리 / 가상 메모리 / 파일 시스템3. 네트워킹TCP/IP / 기타..
[프로그래머스 Lv0.] 181927번 마지막 두 원소 (JAVA)
·
Coding Test/프로그래머스[JAVA]
1. 문제 문제 설명 정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num_list의 길이 ≤ 10 1 ≤ num_list의 원소 ≤ 9 입출력 예 num_list result [2, 1, 6] [2, 1, 6, 5] [5, 2, 1, 7, 5] [5, 2, 1, 7, 5, 10] 2. 풀이과정 class Solution { public int[] solution(int[] num_list) { int[] answer = new int[num_list.length + 1]; for(int ..
[프로그래머스 Lv0.] 120923번 연속된 수의 합 (JAVA)
·
Coding Test/프로그래머스[JAVA]
1. 문제 연속된 수의 합 문제 설명 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요. 제한사항 1 ≤ num ≤ 100 0 ≤ total ≤ 1000 num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다. 입출력 예 num total result 3 12 [3, 4, 5] 5 15 [1, 2, 3, 4, 5] 4 14 [2, 3, 4, 5] 5 5 [-1, 0, 1, 2, 3] 2. 풀이과정 class Solution { public int[] solution(int num, i..