목록CS (5)
초오오오오오짜개발자의낙서장
CPU 스케줄링은 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 의미.만약 CPU 스케줄링이 없다면, 반드시 실행되어야 할 프로세스들이 실행되지 못할 수 있으며, 당장 급하지 않은 프로세스가 실행되는 등 무질서한 상태가 발생할 수 있다.CPU 스케줄링은 선점형과 비선점형 방식으로 구현할 수 있으며, 다양한 스케줄링 알고리즘이 존재.선점형 스케줄링과 비선점형의 특징선점형 스케줄링(Preemptive Scheduling) 은 프로세스가 CPU를 사용하고 있더라도 운영체제가 프로세스로부터 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 방식. 해당 방식은 응답 시간이 낮으며, 효율적이지만 컨텍스트 스위칭 오버헤드가 발생할 수 있으며 경쟁 상태가 발생할 수 있다.비선점형 스케줄링..
트랜잭션 격리 수준 이해하기 위해서 먼저 lock을 알아야한다 크게 스토리지 엔진 레벨과 mysql 엔진 레벨로 나눌수 있다. - 스토리지 엔진 레벨의 잠금 : 테이블의 데이터를 다루기 위한 락 - mysql 엔진 레벨의 잠금 : 테이블이나 데이터베이스 등과 같은 부분을 위한 락 스토리지 엔진 레벨의 잠금 - 레코드 락 - 갭 락 - 넥스트 키 락 - 자동 증가 락 레코드 락 - 테이블 레코드 자체를 잠그는 락 - 레코드 수준은 작은공잔으로 관리 - 레코드 락이 페이지 락 or 테이블 락으로 레벨업 되는 경우는 없다. - mysql에서의 레코드 락은 테이블의 레코드가 아닌 인덱스의 레코드를 잠근다는 점에서 차이가 있다. - mysql에서 인덱스와 테이블은 별도의 자료 구조로 관리되는데 인덱스에 락이 걸린..
mysql 은 cmd창 같은곳에서 한줄한줄 써야되는줄 알았다 (과거에는) 하지만 mysql workbench라는 편집기(?) 존재를 알게되고 매우 편리하게 사용중이다. mysql DB가 설치되어있는 서버에다가 방화벽 포트번호를 오픈해주고 원격 접속을 하면 접속이 가능해진다. Ubuntu에 접속가능하게 설정을 하는 방법을 정리해 보려고 한다. 현재 Ubuntu 의 버전은 20.04.6 이며 mysql이 이미 설치되어있다 가정한다. # mysql 사용자 생성 먼저 접속할 사용자의 계정을 생성해야 된다 (root는 사용하지 말자) $ sudo mysql -u root -pmysql > use mysql;위 명령어로 mysql에 접속한다. mysql> create user 'username'@'%' identi..
매번 구글링 해가면서 사용법 찾고 까먹고 하는거보다 그냥 한번에 정리하자 싶어서 만듬. # 새로운 새션 tmux tmux new -s tmux new -s (session_name) # 세선 종료 exit # 세션 목록 tmux ls # 세션 불러오기 tmux attach -t (session_number) # 세션 중단하기 ctrl + b -> d # 창 분할하기 - 가로 분할 ctrl +b -> " - 세로 분할 ctrl +b -> % # 패널에서 스크롤 하기 ctrl + b -> [ # 특정 세션 강제 종료 tmux kill-session -t session_number # 새 윈도우 생성 - 화면 하단에 윈도우 넘버가 생성 (크롬 탭처..
#include #include struct priority_queue {int cost;}pq[1000],temp; int pq_count=0; void pq_pop();void pq_push(int cost);bool pq_empty();void pq_clear(); int main() {for (int i = 10; i > 0; i--) {pq_push(i);}for (; !pq_empty();) {pq_pop();std::cout 1; i /= 2) {//입력받은 데이터가 바로위 부모보다 작으면if (cost < pq[i / 2].cost)//부모의 데이터를 밑으로 내린다.pq[i] = pq[i / 2];//계속 올라갔을때 부모의 값이 맨밑보다 작으면 멈추고 //현재 위치에 값을 넣는다 그러면 자..
