CS (24) 썸네일형 리스트형 운영체제 - 기초 HTML 삽입 미리보기할 수 없는 소스 운영체제? 사용자가 컴퓨터를 편리하고, 효율적이게 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어 운영체제 역할 프로세스 관리 프로세스, 스레드 스케줄링 동기화 IPC 통신 운영체제에서 작동하는 응용 프로그램을 관리. 현재 CPU를 점유해야 할 프로세스를 결정 및 할당. 프로세스 간 공유 자원 접근과 통신 관리. 저장장치 관리 메모리 관리 가상 메모리 파일 시스템 메인 메모리(1차 저장장치)와 서브메모리(2차 저장장치), NAND를 관리 💡 메인 메모리(1차 저장장치, 주기억장치) 1. 프로세스에 할당하는 메모리 영역의 할당과 해제 2. 각 메모리 영역 간 침범 방지 3. 메인 메모리의 효율적 활용을 위한 가상 메모리 기능 💡 서브메모리(2차 저장장치, 보조기억.. [JAVA] - 동시성 참고 출처 : https://www.youtube.com/watch?v=ktWcieiNzKs 동시성 문제 - 한번에 여러 요청(동시적인 반복 요청 포함)이 오거나, 여러 쓰레드가 공유자원을 사용하면 실행 결과가 달라짐 - 따라서, 동시에 중복 요청 혹은 여러 요청에 대해 대비해야함 - 쓰레드 안전한 객체 : 여러 쓰레드가 동시에 클래스를 사용하는 상황에서, 클래스 내부의 값을 안정적인 상태로 유지하는 객체 상황 1. 은행 어플에서 사용자가 실수로 '송금' 버튼을 2번 클릭하는 경우, 서버에서는 해당 요청에 대해 2번 동작해주면 안됨. ( 동시 요청에 대해 1번만 동작해줘야함) 상황 2. 1. A라는 Bool 변수가 있고, B 쓰레드가 있다. 2. B쓰레드는 while문의 조건에서 A 변수의 값을 보고있고.. [DB] 트랜잭션(Transaction)이란? 데이터베이스 트랜잭션? 데이터베이스에서 상호작용의 단위이다. 각 트랜잭션은 ACID 1.원자성(Atomicity), 2.일관성(Consistency), 3.독립성(Isolation), 4.영구성(Durability)를 보장한다. (하지만, 실제로는 성능향상을 위해 ACID의 각 특성들이 완화되곤 한다.) 트랜잭션의 실행 단계 시작 단계(Begin) 트랜잭션의 시작을 선언 작업 수행 단계 (Perform Actions / Execute several Queries) 데이터베이스에서 읽기/쓰기 할 쿼리들을 실행 이 단계에서는 아직 DB에 반영되지 않음! 완료 단계 (Commit) 작업 수행 단계에서 모든 작업이 성공적으로 수행되, 트랜잭션을 완료하고 변경된 데이터들을 DB에 영구적으로 반영 롤백 단계 (Ro.. [DB] OUTER JOIN 정리 OUTER JOIN OUTER 레코드들도 포함 시키는 조인 OUTER 란? A_TABLE ID NAME A 갑 B 을 C 병 D 정 B_TABLE INDEX ID TITLE 1 A "김치찌게 끓이는 법" 2 A "된장지께 만들기" 3 A "김치 담그기" 4 F "스파게티 만들기" 5 G "요리 팁" 위의 두 테이블이 있을 때, 참조키가 일치하지 않는 레코드들을 OUTER 레코드라고 한다. (색칠된 부분들) OUTER 조인 종류 SELECT * FROM A_TABLE LEFT/RIGHT/FULL OUTER JOIN B_TABLE ON A_TABLE.ID = B_TABLE.ID 위처럼 있을 경우, LEFT OUTER JOIN "LEFT OUTER JOIN" 기준으로 왼쪽에 있는 A_TABLE의 OUTER들을.. [DB] INNER JOIN 정리 INNER JOIN 두 테이블 중 관계가 있는 레코드만 합쳐진다. (관계가 없는 레코드는 제외) 아이디 이름 테이블 (A_TABLE) ID 이름 1 갑 2 을 3 병 4 정 개인정보 테이블 (B_TABLE) ID A_TABLE_ID 출생지 나이 A 1 서울 32 B 1 부산 32 C 3 대구 34 D 5 여수 25 E 6 광주 62 INNER JOIN 결과 SELECT * FROM A_TABLE (INNER)JOIN B_TABLE ON A_TABLE.ID = B_TABLE.A_TABLE_ID INNER 부분을 생략 가능! ID 이름 ID A_TABLE_ID 출생지 나이 1 갑 A 1 서울 32 1 갑 A 1 서울 32 3 병 C 3 대구 34 참고 영상 https://www.youtube.com/watc.. [JAVA] Primitive(원시형) Type ↔️ Reference(참조형) Type Primitive Type byte ( 연산의 결과가 int형으로 변환) short (잘 사용 안함, C언어와 호환이 필요할 때 사용) (연산의 결과가 int형으로 변환) int long float (실수뒤에 F를 꼭 붙여줘야함. 안그러면 해당 실수를 double 형으로 인식) double (float 보다 정밀, 범위도 더 넓음) (자바 실수의 기본형) char boolean Primitive Type은 비객체 타입이다. 따라서 null값을 가질 수 없다. (래퍼 클래스를 통해서만 null값을 할당 가능) stack 메모리에 쌓인다. (GC의 대상 X) OS에 따라 자료형이 변하지 않음. 항상 고정 Reference Class Interface Array Enum ... Primitive 타입을 제외한.. [JAVA] Call by Value ? Call by Reference ? Call by Value 값만 복사해 가져오는 것. C언어에서 포인터가 없는 파라미터를 떠올리면 된다. 예를 들어, 포인터가 없는 함수의 경우, 인자로 받은 변수를 함수 내에서 변경해도, 함수 밖에서 해당 변수는 변경되지 않는다. Call by Reference 주소값을 가져오는 것. C언어의 포인터를 떠올리면 된다. 예를 들어, 함수의 인자를 포인터로 받도록 해주면, 함수 내에서 인자로 받은 변수를 변경 시, 함수 종료 후 밖에서도 해당 변수의 값은 변경된다. 자바는 항상 Call by Value 자바는 원본 객체의 프로퍼티에 접근할 수 있어도, 원본 객체를 변경할 수 없기 때문에, 항상 Call by Value 이다. 자바는 할당된 값의 위치를 값으로 가지고 있다. C / C++ 처럼 변수의 주소값 .. [자료구조] 링크드 리스트 Linked List Linked List 선형적인 데이터 구조 노드 1 -> 노드 2 -> 노드 3 -> ... 각 노드 = 자신의 데이터 + 내 앞 노드의 주소 Linked List를 사용하는 이유 (장점 ) 배열의 제한 사항 때문. 배열의 크기가 고정 새로운 요소를 삽입하는 데 비용이 많이 듬 ( 공간을 만들고, 기존 요소를 전부 이동해야 함) 삽입과 삭제가 용이 동적 메모리 할당이 가능 크기가 가변적 Linked List의 단점 임의의 위치로 액세스 불가 ( 첫 번째 노드부터 순차적으로 접근해야함 ➡️ 이진 검색이 불가능 ) 각 노드마다 내 앞의 노드를 가르키는 데이터를 저장할 공간이 필요 코드 파이썬 #파이썬 class Node: def __init__(self, new_data) -> None: self.data .. 이전 1 2 3 다음