본문 바로가기

언어/CS5

[CS] 컨텍스트 스위칭 (Context Switching) Context Switching개념: 운영체제가 CPU를 사용하는 실행 주체 (프로세스/스레드) 를 바꿀때 이전 주체의 상태(Context)를 저장하고, 새 주체의 상태를 복원하는 과정.한정적인 코어에서 CPU 는 물리적으로 한번에 하나의 주체만 실행가능.운영체제가 일정 시간마다 다른 작업에게 CPU를 할당해 주는 구조.운영체제 입장에서 Context Switching 과정현재 실행중인 프로세스/스레드 상태(Context)를 PCB/TCB 에 저장스케줄러가 다음 실행할 주체를 선택선택된 주체의 상태를 복원CPU에게 새로운 실행 흐름을 넘겨줌 컨텍스트 스위칭 과정 [현재 실행 중인 프로세스 A → 프로세스 B로 전환하는 경우]1. 인터럽트 or 시스템콜 발생 (예: 타임 슬라이스 종료)2. 커널 모드 진입.. 2025. 7. 12.
[CS] 프로세스 vs 스레드 1. 개념차이프로세스OS 에서 실행중인 프로그램. OS 로 부터 자원을 할당받아 실행한다.하나의 프로그램은 여러개의 프로세스를 만들 수 있다. (크롬 다중실행등)프로세스는 실행단위 이며, 서로 독립적인 여러 실행 인스턴스가 만들어 질 수 있다.스레드프로세스 내부의 실행 흐름 단위한 프로세스 내에서 여러 쓰레드를 동시에 실행한다.해당 스레드는 프로세스의 메모리 자원을 공유한다. 2. 메모리 구조운영체제가 프로세스에 메모리를 할당하는 방식. 총 4개의 메모리 영역으로 나뉜다.코드영역 : 실행할 프로그램의 기계어 코드 (함수/if제어문/루프문)데이터영역 : 전역변수, static 변수힙영역 : 런타임중 new, malloc 으로 동적으로 할당되는 메모리스택영역 : 함수호출정보, 지역변수프로세스와 스레드의 메모.. 2025. 7. 9.
CS 준비를 위한 키워드정리 ✅ 1. 운영체제 (OS)📌 필수 개념프로세스 vs 스레드Context Switching시스템 콜 (System Call)커널 / 유저 모드멀티태스킹, 멀티스레딩스케줄링 알고리즘 (FCFS, RR, SJF, MLFQ)인터럽트와 인터럽트 핸들링동기 vs 비동기, 블로킹 vs 논블로킹📌 메모리 관리가상 메모리 / 페이징 / 세그멘테이션페이지 교체 알고리즘 (FIFO, LRU, LFU)페이지 폴트TLB (Translation Lookaside Buffer)📌 동기화 & 병행성임계 영역 / 세마포어 / 뮤텍스 / 스핀락데드락 (Deadlock) 조건, 예방, 회피병행 제어 이슈: 레이스 컨디션, 교착 상태메모리 모델 (volatile, memory barrier 등) ✅ 2. 네트워크📌 TCP/IP 4계.. 2025. 7. 6.
[CS] 논리 연산의 단락 평가 (short-circuit evaluation) 코딩에 있어서 논리 연산은 정말 코딩의 꽃이라고 할 수 있다! 우리의 인생은 True와 False의 선택에서 살고 있다 해도 과언이 아니다.. 마치 아침에 알람이 울렸을 때 알람을 듣고 깰지.. 끄고 더 잘 것인지에 대한 판단 또한 논리 연산이라 말할 수.. 있다..ㅋㅋ 암튼 이게 중요한 것이 아니라 오늘은 논리 연산 시에 일어나는 단락 평가 (short-circuit evaluation)에 대해서 알게 된 내용을 정리할 것이다. 먼저 단락 평가란 두 개 이상의 논리 연산을 진행할 때 첫 번째 값만으로 결과가 확실할 때 두 번째 값은 확인(평가) 하지 않는 방법을 말한다. 먼저 논리 연산에는 다음과 같이 4가지가 존재한다. && (and 연산) 두 논리값이 모두 True일 때 True return || .. 2020. 7. 23.
[CS] 부동소수점 오류 부동소수점.... 분명 학부시절에 좀 들었던 내용이지만 하루에 배우는 양이 엄청나다 보니 귀에 들어 오지 않았을 뿐이다. 그러나 지금은 자바를 이미 어느정도 안다고 생각한 후 다시 기초부터 듣게되니 내가 몰랐던 내용들에 더 귀가 들어오고 있다. 그중 하나는 오늘 들은 부동 소수점 이야기이다. 먼저 예시로 다음 코드를 보자 int apple = 1; // 사과 1개 double pieceUnit = 0.1; // 사과를 10개로 쪼갠 조각 중 1개 int num = 7; double result = apple - pieceUnit*num; System.out.println(result); 위 예시는 사과(apple) 1개를 숫자 1이라 치고 사과 조각(pieceUnit)을 0.1로 하여 먹은 사과수(num.. 2020. 7. 22.
반응형