728x90

CS 6

프로세스의 상태 전이와 CPU 스케줄링의 흐름

운영체제는 여러 개의 프로세스를 동시에 관리해야 한다. 이때 운영체제는 각 프로세스의 상태를 관리하고, CPU를 어떤 프로세스에 할당할지 결정하는 역할을 한다. 이 과정에서 CPU 스케줄링, 프로세스 상태(준비/대기/실행 등), PCB(Process Control Block), 그리고 인터럽트 같은 개념들이 유기적으로 연결된다.1. 프로세스가 생성되면프로그램이 실행되면 운영체제는 해당 프로세스를 위한 PCB(Process Control Block)를 생성한다. 이 PCB는 프로세스의 상태, 프로그램 카운터, 레지스터 정보, 메모리 정보 등을 저장하는 구조체다. 이 PCB는 프로세스의 전체 실행 정보를 관리하는 데 필수적이다.2. 준비 상태프로세스가 실행 준비가 되면 준비 큐(Ready Queue)에 들어..

CS/운영체제 2025.05.18

프로세스와 스레드의 차이

프로세스란?프로세스는 실행 중인 프로그램을 말한다. 우리가 어떤 앱을 실행하면 그건 운영체제 입장에서 하나의 프로세스가 된다.각각 독립된 메모리 공간을 가진다.하나의 프로세스가 오류로 종료돼도 다른 프로세스엔 영향을 주지 않는다.프로세스끼리는 메모리를 공유하지 않기 때문에, 서로 데이터를 주고받으려면 별도의 통신 방식이 필요하다.스레드란?스레드는 프로세스 안에서 실제로 작업을 수행하는 실행 단위다. 하나의 프로세스 안에는 여러 개의 스레드가 있을 수 있다.같은 프로세스 안에 있는 스레드끼리는 메모리(힙, 데이터 영역 등)를 공유한다.각각 스택 영역은 따로 가진다.하나의 스레드가 문제를 일으키면, 같은 프로세스에 있는 다른 스레드들도 영향을 받을 수 있다.프로세스의 자원을 공유한다 => 프로세스는 독립적..

CS/운영체제 2025.05.12

운영체제와 응용프로그램

운영체제란?- 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램- 주요 업무: 메모리 관리, CPU 관리 예를 들어 메모장, 웹 브라우저같은 프로그램(정확히는 응용프로그램)을 실행시키려면 메모리에 적재되어야 하는데 이런 프로그램이 적재되는 영역은 사용자 영역이다. 운영체제는 항상 컴퓨터가 부팅될 때 메모리 내 커널 영역에 따로 적재되어 실행된다. 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 프로그램들에 자원을 할당하고 올바르게 실행되도록 돕는다. 여러 응용 프로그램들을 동시에 실행하면 사용자 영역의 n번지에 각각 적재되어야 하는데, 메모리 주소가 겹치지 않도록 적당한 공간에 프로그램들을 적재해주는 것이 바로 운영체제이다. 결론: 운영체제는 실행할 ..

CS/운영체제 2025.05.10

CPU 내 명령어 실행 흐름

CPU 내에는 ALU(산술논리연산장치), 제어장치, 레지스터가 있다. - ALU: 컴퓨터 내부에서 수행되는 계산을 수행- 제어장치: 제어 신호라는 전기 신호를 내보내고 명령어를 해석하는 장치 ex. CPU가 메모리에 저장된 값을 읽고 싶을 때 메모리를 향해 메모리 읽기라는 제어 신호를 보냄- 레지스터: CPU 내부의 작은 임시 저장 장치 / 프로그램을 실행하는 데 필요한 값들을 임시로 저장 / CPU 내부에는 여러 개의 레지스터가 존재 + 메모리(RAM)는 CPU 외부에 있지만, CPU가 데이터를 가져오거나 저장하기 위해 항상 메모리와 통신해야 한다.즉, 명령어를 실행하는 중심은 CPU지만, 필요한 데이터는 대부분 메모리에 있기 때문에 외부와도 계속 연결된다. CPU내 이런 장치들이 명령어를 처리하..

CS/컴퓨터구조 2025.05.07

이진수의 음수 표현 / 플래그

이진법이란, 0과 1만으로 모든 숫자를 표현하는 방법을 말한다. 원리는 숫자가 1을 넘어가는 시점에 자리 올림을 하면 된다. 아래는 그 예시이다십진수이진수112103114100510161107111 이런식으로 0과 1만으로 수를 표현한다. 그러나 1, 10, 11 이런식으로만 쓰면 십진수인지 이진수인지 구분할 수 없다. 이진수를 정확히 표기하기 위에서는 뒤에 (2)를 붙이거나 앞에 0b를 붙이면 된다. ex) 101(2) / 0b101 그렇다면 이진수의 음수는 어떻게 표현할 수 있을까? 십진수로 음수를 표현하기 위에서는 앞에 "-"부호만 붙여주면 된다. 하지만 컴퓨터는 0과 1만 이해할 수 있기 때문에 이러한 방식으로는 표현할 수 없다. 이러한 상황에서 2의 보수를 구해 이 값을 음수로 간주한다. ..

CS/컴퓨터구조 2025.05.01

이진 검색 (Binary Search)

이진 검색이란?- 이진 검색은 정렬된 배열에서 특정 값을 효율적으로 찾는 알고리즘- 배열의 중앙값을 기준으로 탐색 범위를 반으로 나누며, 찾고자 하는 값이 어느 쪽에 있는지에 따라 탐색 범위를 줄여 나감- 탐색 범위가 절반으로 줄어들기 때문에 시간 복잡도가 O(log N)로 매우 효율적! 이진 검색 동작 원리중앙값을 찾기: 배열의 중앙 값을 찾는다비교: 찾고자 하는 값이 중앙값보다 작은지 큰지 비교작으면 왼쪽 절반을 다시 검색.크면 오른쪽 절반을 다시 검색.반복: 값을 찾을 때까지, 또는 검색 범위가 없어질 때까지 이 과정을 반복이진 검색의 특성정렬된 배열에서만 사용할 수 있다 (사용 전 필히 정렬하자)값을 찾으면 그 인덱스를 반환하고, 값을 찾을 수 없으면 음수를 반환Arrays.binarySearch..