`프로세스` 컴퓨터에서 실행되고 있는 프로그램`작업` CPU 스케줄링의 대상→ 둘이 거의 같은 의미로 사용 `스레드` 프로세스 내 작업의 흐름📌 3.3.1 프로세스와 컴파일 과정`프로세스` 프로그램으로부터 인스턴스화된 것 `프로그램` 컴파일러가 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 기계어로 번역되어 실행될 수 있는 파일 `프로그램의 컴파일 과정``전처리` 소스 코드의 주석을 제거하고 헤더 파일을 병합하여 치환`컴파일러` 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환`어셈블러` 어셈블리어는 obj 코드로 변환, 운영체제마다 확장자가 다름`링커` 프로그램 내 라이브러리, 다른 파일들과 obj 코드를 결합하여 실행 파일을 만듦 라이브러리 - 정적/동적`정적 라이브러리` 빌드 시 라이브러리가 ..
분류 전체보기
N, K = list(map(int, input().split()))A = list(map(int, input().split()))r = len(A)flag = FalsesaveCount = 0tmp = 0 * (r+1)def merge_sort(A, p, r): # A 배열을 오름차순 정렬 if flag == True: return if p 짱 어렵다...... .. ..
T = int(input())answer = 0def recursion(s, l, r): global answer answer = answer + 1 if l >= r : return 1 elif s[l] != s[r]: return 0 else: return recursion(s, l+1, r-1)for _ in range(T): strList = list(input()) answer = 0 print(recursion(strList, 0, len(strList)-1), end = " ") print(answer) 그냥 하라는대로 하면 된다.다 알려줌
📌 3.2.1 메모리 계층- `레지스터`, `캐시`, `메모리`, `저장장치`로 구성 - `RAM`은 `하드디스크`로부터 `데이터를 복사해서 임시 저장하고 필요 시마다 CPU에 빠르게 전달`- 계층 위로 올라갈수록 가격이 비싸지며 용량은 작아지고 속도는 빨라짐- 이러한 경제성 때문에 계층을 두어 관리 캐시- `데이터를 미리 복사`해 놓는 임시 저장소- 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄임 - 메모리와 CPU 사이의 속도 차이가 너무 커 레지스터 계층을 통해 해결 지역성의 원리- 자주 사용하는 데이터를 기반으로 캐시 설정 필요- 자주 사용하는 근거 - 지역성 !- 시간 지역성 / 공간 지역성 `시간 지역성` 최근 사용한 데이터에 다시 접근하려는 특성`공간 지역성` 최근 접근한..
📌 3.1.1 운영체제의 역할과 구조운영체제의 역할1) CPU 스케줄링과 프로세스 관리: CPU 소유권 할당 및 프로세스 관리2) 메모리 관리: 메모리 할당3) 디스크 파일 관리4) I/O 디바이스 관리: 마우스, 키보드와 컴퓨터 간 주고받는 데이터 관리-> 관리를 열심히 하는군 ㅋㅋ 운영체제의 구조 유저 프로그램이 맨 위, 가장 밑에 하드웨어여기서 `GUI`, `시스템콜`, `커널`, `드라이버`가 운영체제(리눅스는 GUI 없이 CUI만 있음)`드라이버`: 하드웨어를 제어하기 위한 소프트웨어 시스템콜- 운영체제가 `커널에 접근`하기 위한 인터페이스`커널`: 하드웨어와 소프트웨어 간의 상호작용을 관리하고 시스템 `자원`을 효율적으로 분배- 유저 프로그램이 `운영체제의 서비스를 받기 위해 커널 함수 호출..
Spring 프레임워크에서 애플리케이션을 구조화하는 데 사용되는 주요 레이어는 `Domain`, `Repository`, `Service`, `Controller`이다. 각 레이어는 특정한 역할을 담당하여 애플리케이션의 모듈화와 유지보수성을 높인다. 각 레이어의 역할은 다음과 같다. 📌 각 계층의 역할`Domain`도메인 계층은 애플리케이션의 `핵심 비즈니스 로직과 엔티티`를 포함한다. 주로 비즈니스 객체, 엔티티, 밸류 객체 등을 정의한다. `Repository`레포지토리 계층은 데이터 저장소와의 상호 작용을 담당한다. 주로 데이터베이스에 접근하여 CRUD 작업을 수행한다. `Service`서비스 계층은 애플리케이션의 비즈니스 로직을 포함한다. 여러 `도메인 객체와 레포지토리의 조합을 통해 비즈니스 ..
import syslimit_number = 15000sys.setrecursionlimit(limit_number)n = int(input())def fibonacci(num): if num import syssys.setrecursionlimit(10000) 재귀 제한 해제!
N = int(input())def factorial(num): if num in [0,1]: return 1 return num * (factorial(num-1)) print(factorial(N)) 쉽다!