목록전체 글 (283)
개발자는 기록이 답이다
프로세스📌 프로그램과 프로세스에 대해 설명해주세요.프로그램은 저장장치에 존재하는 컴파일된 코드의 집합입니다.실행되기 전까지는 그저 저장장치에 존재되는 데이터에 불과하지만, OS에서 명령을 받아 메모리에 적재하게 되면 그때부터는 운영체제의 관리를 받으며 CPU 자원을 통해 동작하는 '프로세스' 가 됩니다. 참고 : 혼자 공부하는 컴퓨터 구조와 운영체제 📌 프로세스 문맥에 대해 설명해주세요.프로세스 문맥은 운영체제가 특정 프로세스를 실행하기 위해 필요한 모든 상태 정보를 말합니다. 프로세스가 실행되면서 사용하는 CPU 레지스터, 프로그램 카운터, 메모리 관리 정보, 스택 포인터, 프로세스의 현재 상태(실행 중, 대기 중, 종료 등), 열려 있는 파일 디스크립터 등과 같은 정보를 포함합니다.프로세스 문맥은..
📌 운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요. 모든 프로그램은 실행을 위해 자원을 필요로 하는데, 운영체제는 운영체제는 컴퓨터 하드웨어와 소프트웨어 자원을 관리하며, 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 소프트웨어입니다. 이 자원에는 CPU, 메모리, 저장 장치, 네트워크 패킷, 파일 등이 포함됩니다. 실행중인 응용 프로그램은 메모리에 적재되는데, 운영체제도 실행중인 응용프로그램이기 때문에 메모리에 적재되어 실행됩니다.하지만 운영체제는 컴퓨터를 동작시키는 너무 중요한 프로그램이기 때문에, 메모리에 따로 적재되는데 커널 영역이라는 곳에 적재됩니다.즉, 메모리의 사용자 영역에서 실행 중인 여러 응용 프로그램들이 적재되어 있다면, 그 위에 커널 영역에 ..
우리가 구글에서 검색할 때, '문자여'만 입력해도 다음에 나올 단어들이 자동완성처럼 제안되는 것을 흔히 볼 수 있습니다. 이는 Prefix 검색 덕분입니다. 그렇다면 데이터베이스에서는 어떻게 이러한 Prefix 검색을 빠르게 처리할 수 있을까요? 📌 MySQL에서 인덱스 사용 데이터베이스에서 특정 데이터를 빠르게 찾아오기 위해 인덱스(Index)를 사용합니다. 인덱스는 디스크 파일에 저장된 데이터를 빠르게 검색할 수 있게 도와줍니다. MySQL에서의 인덱스는 주로 B+ Tree 자료구조를 기반으로 구성됩니다. B+ 트리는 B-Tree에서 파생된 개념입니다. B-Tree는 트리 구조의 최상위에 하나의 루트 노드(Root Node)가 존재하고, 그 하위에 자식 노드가 붙어있는 형태입니다. 트리 구조의 가장..
멀티프로그래밍에서 주의해야 할 점으로 3가지가 있습니다.동시성이슈(경합상태)데드락기아상태이 3가지에 대한 고찰한 내용을 담았습니다. 1. 동시성 정의 동시성이란 두 개 이상의 스레드나 프로세스가 동시에 실행 될때 발생합니다. 구체적으로 말하자면, "여러 주체가 하나의 공유 자원에 동시에 접근하여 2가지 이상의 Action"을 수행하면서 자원의 일관성이 깨지는 경쟁 상태(race condition)가 발생할 수 있습니다. 예를 들어, 한 스레드가 데이터를 변경하려고 할 때 다른 스레드가 이미 그 데이터를 사용하고 있다면 어떻게 될까요?개발자가 정의한 정상적인 흐름을 따르지 못하고 자원의 일관성이 깨지며 예기치 않은 결과를 초래하게 됩니다. "예기치 않은 결과"라는 건 아래 표와 같이 두 개의 스레드가 각..