분류 전체보기 58

데이터베이스 인덱스 효율적으로 사용하는 방법

기본적으로 인덱스란 무엇인가에 대한 개념을 잡고오면 도움이 됩니다.https://steady-snb.tistory.com/7 데이터베이스 인덱스(INDEX)란?테이블에 대한 검색 성능을 높혀주기 위한 자료구조이다. 예를들어, 00도서관에서 책을 찾으려고 한다.00도서관에는 책이 10만권이 넘게 있는데 우리는 그 책들을 일일이 하나씩 뒤져볼 수 없다.steady-snb.tistory.com 인덱스를 잘 사용하면 조회 성능이 보다 빠르지만 잘 못 사용하면 오히려 처음보다 느려지는 역효과를 야기할 수 있습니다.그렇다면 인덱스는 어떻게 돌아가는 원리이며 무슨 조건으로 사용해야 보다 효율적으로 사용할 수 있는가 알아봅시다.  인덱스가 돌아가는 구조 기본적으로 데이터베이스에서 인덱스라 하면 B-트리 구조가 일반적입..

2025년 목표와 새해 다짐

내 나이 벌써 29살이다.나는 내가 어릴 때 20대 후반쯤엔 사업을 하며 내가 원하는 삶을 살고 있을 줄 알았다.현실은 월급에 의존하는 직장인이다.여태의 삶을 돌아보면 내가 원하는 삶은 100인데 정작 꿈을 향해 다가가는 행동력은 30에 불과하다는 생각이 들었다.더 이상 미루면 안된다는 생각으로 열심히 꿈을 향해 달려가려고 노력해본다. 2024년 다짐과 목표'사람이 한 단계 더 성장하려면 1년쯤은 죽어라 고생해보아야 한다' 라는 마인드로지난 1년간 야근, 주말출근 할 것 없이 일에 매달렸다.덕분에 코딩실력과 전체적인 역량이 많이 키워졌고 앞으로 나아가야 할 방향에 대해 어느정도 감이 생기게 되었다. 2025년 다짐과 목표2024년을 돌아보니 '일을 좀 더 똑똑하게 했더라면 어땠을까?' 라는 생각이 든다...

일상토크 2025.02.02

CPU 스케줄링 알고리즘 선점형, 비선점형

CPU가 어떤 프로세스를 선택할 것인지 스케줄링 알고리즘을 통해 선택되며 효율적으로 선택하는게 중요합니다.여기서 효율적이란 것은 다음과 같은 요건을 만족할 때 효율적이라 할 수 있습니다. 1. CPU사용률이 높은가?2. 단위 시간당 작업을 마친 프로세스 수(처리량)이 높은가?3. 작업을 요청한 프로세스가 작업을 시작하기 전에 대기하는 시간이 짧은가? 스케줄링 알고리즘의 방식은 비선점형과 선점형으로 나뉩니다. 비선점형(FCFS, SJF, 우선순위) FCFS(First Come, First Served)가장 먼저 온 것을 가장 먼저 처리하는 알고리즘 입니다.길게 수행되는 프로세스 때문에 준비 큐에서 오래 기다리는 현상이 발생하는 단점이 있습니다. SJF(Shortest Job First)실행 시간이 짧은 프..

프로세스 교착상태의 원인과 해결방법

교착상태(deadlock) 두 개 이상의 프로세스가 자원을 점유한 상태에서 서로가 점유한 자원을 서로에게 요구하고 있어그 프로세스들이 무한정 기다리고 있는 상태를 의미합니다.  교착상태의 4가지 필요요건 1. 상호배제(Mutual exclusion)- 한 리소스는 한 번에 한 프로세스만이 사용할 수 있다.- 사용중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때 까지 기다려야 한다. 2. 점유와 대기(Hold and wait)- 특정 프로세스가 점유한 자원을 다른 프로세스가 요청하며 대기하는 상태입니다. 3. 비선점(No preemption)- 이미 할당된 자원을 강제로 빼앗을 수 없다.- 프로세스가 task를 마친 후 리소스를 자발적으로 반환할 때 까지 기다려야 한다. 4. 환형 대기(Ci..

운영체제에서 자원의 접근 방식, 공유자원과 임계영역

공유자원시스템 내에서 각 프로세스, 스레드가 함께 접근할 수 있는 메모리, 파일, 데이터 등의 자원이나 변수를 의미합니다. 이러한 상태의 자원을 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황을 경쟁상태라 합니다. 공유 자원에 접근할 때 순서 등의 이유로 결과가 달라지는 영역을 임계 영역이라고 합니다.공유 자원을 여러 프로세스가 동시에 접근할 때 잘못된 결과를 만들 수 있기에 한 프로세스가 임계 영역에서수행 중이면 다른 프로세스가 접근을 못하도록 막아야합니다.  위와 같이 경쟁상태를 잘 관리하지 못하면 데이터 정합성 및 무결성을 해칠 수 있습니다.  경쟁상태를 해결하는 방법  1. Mutex(Mutual Exclusion)상호 배제 라고도 불리는 메커니즘인데 한 프로세스가 공유 자원 사용 시 잠금을 설..

프로세스와 스레드의 차이

프로세스의 정의와 개념에 대해 알고오시면 도움이 됩니다.https://steady-snb.tistory.com/50 프로세스의 메모리 할당 구조 및 역할프로세스(process)란? 기계어로 이루어진 .exe파일을 우리는 프로그램이라 하고 실행을 위해 메모리위에서 재구성 하는 것을 프로세스라 한다. 운영체제가 제공하는 메모리 공간은 크게 4가지로steady-snb.tistory.com  프로세스(Process) 컴퓨터의 메모리에 올라와 실행되고 있는 프로그램 하나의 싱글스레드 프로세스와 여러 개의 멀티스레드 프로세스로 나뉩니다. 스레드(Thread) 프로세스내의 작업의 흐름   프로세스와 스레드의 차이 1. 프로세스는 코드, 데이터, 스택, 힙 메모리 영역을 기반으로 작업하는 반면 스레드는 프로세스 내의 ..

프로세스간의 통신 IPC(Inter-Process Communication)

프로세스의 개념에 대하 간략히 알고오시면 도움이 됩니다.https://steady-snb.tistory.com/50 프로세스의 메모리 할당 구조 및 역할프로세스(process)란? 기계어로 이루어진 .exe파일을 우리는 프로그램이라 하고 실행을 위해 메모리위에서 재구성 하는 것을 프로세스라 한다. 운영체제가 제공하는 메모리 공간은 크게 4가지로steady-snb.tistory.com 프로세스는 각자 독립적인 주소 공간을 가지고 있어서 다른 프로세스간의 통신이 불가능할 것 같지만실제로 IPC(Inter-Process Communication)를 통해 프로세스간의 통신이 가능합니다. IPC의 대표적 모델 - 공유메모리- 파이프- 파일- 소켓- 메시지 큐- 메모리 맵  데이터를 공유하는 방법에는 2가지가 존재..

페이지폴트의 과정과 스와핑

전에 포스팅했던 가상메모리의 정의에 대해 알고오시면 이해에 도움이 됩니다.https://steady-snb.tistory.com/51 가상메모리의 정의와 페이지 테이블가상 메모리(vurtual memory)는 OS에서 사용되는 메모리 관리 기법의 하나로컴퓨터가 실제로 이용가능한 메모리 자원(물리 주소, physical address)을 추상화하여 이를 사용하는사용자들에게 매우 큰 메steady-snb.tistory.com  윈도우 운영체제의 가상 메모리는 RAM을 효율적으로 관리하는 방법 중 하나로, 각 프로그램에실제 메모리 주소가 아닌 가상 메모리 주소를 할당하는 방식으로 RAM의 부족한 용량을 보완하는데 쓰인다. 페이지폴트란?운영체제는 모든 가상 메모리를 물리 메모리에 로드하지 않습니다. 그렇기에 참..

가상메모리의 정의와 페이지 테이블

가상 메모리(vurtual memory)는 OS에서 사용되는 메모리 관리 기법의 하나로컴퓨터가 실제로 이용가능한 메모리 자원(물리 주소, physical address)을 추상화하여 이를 사용하는사용자들에게 매우 큰 메모리로 보이게 만드는 것을 말합니다.가상주소는 MMU와 Page Tabel에 의해 실제 주소로 변환됨.페이지 : 가상 메모리를 사용하는 최소 크기의 단위프레임 : 실제 디스크나 메모리를 사용하는 최소 크기의 단위  가상 메모리의 필요성 * 주기억장치의 효율적 관리(스와핑)하드디스크를 주기억장치에 대한 캐시로 설정하여, 당장 사용하는 영역만 유지하고 쓰지 않는 데이터는하드디스크에 보관하여, 필요할 때만 램에 데이터를 다시 불러와 램을 효과적으로 관리합니다. * 메모리 관리의 단순화각 프로세스..

프로세스의 메모리 할당 구조 및 역할

프로세스(process)란? 기계어로 이루어진 .exe파일을 우리는 프로그램이라 하고 실행을 위해 메모리위에서 재구성 하는 것을 프로세스라 한다. 운영체제가 제공하는 메모리 공간은 크게 4가지로 나뉜다.1. Text(code)영역2. Data영역(BSS,GVAR)3. Stack영역4. Heap영역  - Stack영역 * 프로그램이 자동으로 사용하는 메모리 영역으로 함수 호출과 관계되는 지역변수와 매개변수가 저장된다.* 함수 호출 시 생성되며 함수가 종료되면 메모리 영역이 사라집니다.* 명령 실행 시 자동으로 증가  또는 감소하기 때문에 보통 메모리의 마지막 번지를 지정한다.(후입선출, LIFO방식)* 스택 영역은 메모리의 높은 주소에서 낮은 주소의 방향으로 할당된다.* 커널 영역을 가장 최상위 메모리 주..