[CS_운영체제] 프로세스 관리와 통신 (PCB, 컨텍스트 스위칭, 멀티 프로세싱, IPC)
·
CS_운영체제
운영체제의 프로세스 관리와 통신: PCB, 컨텍스트 스위칭, 멀티프로세싱, IPC운영체제는 실행 중인 프로그램들을 관리하고, 한정된 자원을 효율적으로 배분하기 위해 여러 가지 기법을 사용합니다. 이 글에서는 프로세스에 대한 정보를 담은 프로세스 제어 블록(PCB), 프로세스 간 전환을 의미하는 컨텍스트 스위칭, 여러 개의 프로세스를 동시에 실행하는 멀티프로세싱, 그리고 프로세스 간 데이터를 주고받는 IPC(Inter-Process Communication)에 대해 자세히 살펴보겠습니다.프로세스와 스레드프로세스컴퓨터에서 실행 중인 프로그램의 인스턴스를 의미합니다.예를 들어, chrome.exe와 같은 실행 파일을 두 번 클릭하면, 각 실행 파일은 메모리에 올라가 프로세스로 인스턴스화됩니다.운영체제는 이러한..
[프로그래머스] 요격 시스템 (Level 2), 파이썬
·
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef solution(targets): targets.sort(key = lambda x:x[1]) rs = 0 fin = 0 for s, e in targets: if s  문제의 목표는 주어진 폭격 미사일들의 x 좌표 범위(targets)를 이용하여,모든 폭격 미사일을 요격하기 위해 필요한 요격 미사일 수의 최솟값을 구하는 것입니다.접근 방법이 문제는 최소 점 커버 문제 (Minimum Po..
[면접 대비] CPU 바운드와 IO 바운드의 차이점은 무엇일까?
·
면접 대비
CPU 바운드와 IO 바운드의 차이점은 무엇일까?소프트웨어 성능 최적화에서 가장 중요한 포인트 중 하나는 작업이 CPU 바운드인지 IO 바운드인지를 구분하는 것입니다. 이 글에서는 두 작업 유형의 기본 개념과 차이점을 설명한 후, 면접에서 예상되는 꼬리 질문과 이에 대한 답변을 작성해 보았습니다.기본 개념 정리CPU 바운드 (CPU-bound)CPU 바운드 작업은 프로그램의 실행 속도가 CPU의 연산 능력에 의해 결정됩니다.예를 들어, 복잡한 수학 계산, 암호화/복호화, 이미지나 비디오 인코딩 같은 작업은 CPU의 처리 속도가 병목이 됩니다.특징연산 중심: 복잡한 계산, 알고리즘 처리, 데이터 암호화/복호화 등Ex대규모 수치 계산정렬 및 검색 알고리즘이미지/비디오 인코딩최적화 전략알고리즘 개선: 더 효율..
[프로그래머스] 석유 시추 (Level 2), 파이썬
·
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr첫 번째 접근: 열마다 개별 BFS 수행 (효율성 테스트 탈락)접근 방법각 열에 대해 독립적으로 BFS를 수행하여, 그 열에 있는 석유 셀을 만나면 상하좌우로 연결된 덩어리의 크기를 직접 계산합니다.from collections import dequedef solution(land): dy = [0,1,0,-1] dx = [1,0,-1,0] N = len(land) M = len(land[0]) rs = 0 fo..
[프로그래머스] 도넛과 막대 그래 (Level 2), 파이썬
·
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfrom collections import defaultdictdef solution(edges): graphin = defaultdict(list) graphout = defaultdict(list) for start, end in edges: graphin[end].append(start) graphout[start].append(end) root = 0 for node in..
[Q] onclick, th:onclick, href, th:href 의 차이점은 무엇일까?
·
SPRING
onclick, th:onclick, href, th:href 의 차이점은 무엇일까?웹 애플리케이션을 개발을 공부하면서 뷰 페이지를 만들 때, 어떤 경우에는 onclick을 사용하고 어떤 경우에는 th:onclick을 사용합니다. href도 마찬가지입니다.특히 스프링/Thymeleaf 환경에서는 기본 HTML 속성과 Thymeleaf 전용 속성이 혼합되어 사용되는데, 이 둘의 차이를 명확히 이해하는 것이 유지보수와 확장성 측면에서 매우 중요합니다. 이번 글에서는 onclick과 href의 기본 개념은 물론, Thymeleaf를 사용할 때 제공되는 th:onclick과 th:href 속성이 어떻게 동작하는지, 그리고 언제 어떤 것을 사용해야 하는지를 알아보겠습니다.onclick – 인라인 자바스크립트 이벤..
[백준] 21758 꿀 따기 (골드 5), 파이썬
·
알고리즘
https://www.acmicpc.net/problem/21758import sysinput = sys.stdin.readlineN = int(input())nums = list(map(int, input().split()))hap=[0] * Nhap[0] = nums[0]rs = 0for i in range(1, N): hap[i] += hap[i-1]+nums[i]#최대로 꿀을 먹으려면 벌통이 양 끝에 있거나 가운데 있어야 함#벌통이 맨 오른쪽에 있는 경우 (벌 한마리는 맨 왼쪽 고정, 한마리만 i값으로 위치 변경하면서)for i in range(1, N-1): rs = max(rs, (hap[N-1]-nums[0]-nums[i]) + (hap[N-1]-hap[i]))#벌통이 맨 왼쪽에 ..
[Q] 스프링 컨트롤러에서 뷰 파일 반환 vs Redirect: 무엇이 다를까?
·
SPRING
컨트롤러에서 뷰 파일 반환 vs. Redirect: 무엇이 다를까?스프링 MVC 애플리케이션에서는 컨트롤러 메서드가 요청을 처리한 후 최종적으로 사용자에게 보여줄 뷰를 결정하는데, 이때 두 가지 방식으로 뷰를 반환할 수 있습니다.단순 뷰 반환 (View Name 반환)리다이렉트 (Redirect) 두 방식은 사용자의 요청 처리 과정과 브라우저의 동작에 큰 차이를 가져옵니다.단순 뷰 반환 (View Name 반환)동작 원리컨트롤러에서 메서드의 반환값으로 단순한 문자열(예: "home")을 반환하면, 스프링의 뷰 리졸버(View Resolver)가 해당 이름과 매핑되는 뷰 파일(예: home.jsp, home.html 등)을 찾아 서버 내부에서 바로 렌더링합니다. 이 경우 서버가 클라이언트에게 최종 HTML..