
프로세스 사이의 공유자원쓸때 문제점 프로세스가 fork()로 분기 되었을때의 상황입니다. 두개로 나뉨에 따라, 원래 프로세스가 가리키고 있던 메모리를 같이 가리키고 있습니다. Table1 이 부모프로세스이고, Table2가 자식 프로세스입니다. 먼저 저번에는 한개의 process만 메모리를 건드리고 있었다면 지금은 새로운 process가 생겨 두개의 process가 동시에 실제 메모리를 가리키고 있는상황입니다. READ상황 -두 프로세스가 동시에 VP 1을 읽으려고 한다고 가정할때, 동시에 읽는건 가능합니다. 읽는건 실제 메모리를 건드리지않고 데이터만 가져오는 과정이기 때문에 실제메모리에 변화가 없기에 괜찮습니다. WRITE상황 (실제메모리의 공유자원을 변경할때) -두 프로세스가 VP 1이라는 공유자원을..

가상메모리란? -프로그램의 주소 공간을 실제 메모리에서 분리 시켜놓은 기술입니다. 가상주소는 프로그램 주소 공간이고, 실제 주소는 실제 메모리의 위치입니다. 가상 메모리와 실제 메모리의 공간은 서로 분리된 독립적인 공간이며, 실제 메모리보다 가상 메모리의 크기가 훨씬 큽니다. CPU에서 가상메모리를 가지고 있고 이를 사용할때 MMU라는것을 통해서 실제 메모리로바꿔서 사용합니다. 가상메모리를 쓰는 이유는, 바로 실제 메모리로 매핑하면 메모리관리가 복잡해지고, 보안이 취약해지며, 오류 발생할 확률이 높아지기때문입니다. (가상 메모리는 개념상으로 보면 매우 비효율적이지만 지역성이 좋아 사용합니다) 가상 메모리의 장점 메인 메모리 효율적사용 -가상메모리에 전체 전체 데이터를저장하고 일부를 실제 메모리로 가져와서..

파일 생성후 실행파일까지의 과정 컴파일 -컴파일은 소스코드를 컴퓨터가 이해하는 바이너리 코드로 변환하는 과정을 컴파일이라고 하는데. 컴파일러는 소스코드를 입력으로 받아서 이를 실행 가능한 목적코드로 변환한후 링크를 통해 실행가능한 파일을 만듭니다. 과정 과정 설명 전처리(Preprocessing) 단계 소스코드 내의 전처리 지시문을 처리하는 과정, 컴파일을 하기전에 먼저 전처리 지시문을 해석해 그 지시문의 코드들을 현재 소스 파일에 포함을 시킴.(.i 파일로 변환) 컴파일(Compilation) 단계 앞에서 전처리된 소스코드를 컴파일러가 입력으로 받아서, 컴퓨터가 이해할 수 있는 어셈블리어로 변환.(.s 파일로 변환) 어셈블(Assembly) 단계 어셈블러가 앞의 어셈블리어를 받아서 기계어 목적(bine..
파일모드란? -파일모드는 유닉스 계열 운영체제에서 파일의 접근 권한을 지정하는 방법입니다. 파일 모드는 3개의 숫자로 표현되며, 각 숫자는 파일의 소유자, 그룹,기타 사용자를 나타냅니다. 파일모드는 각 권한을 나타내는 문자로 표기할 수 있습니다. r -> 읽기 권한 w -> 쓰기 권한 x -> 실행 권한 또한 파일 모드의 기본 구조는 다음과같습니다. _ _ _ / _ _ _ / _ _ _ user / group / other user -> 파일의 만든 소유주의 권리 group -> 파일을 만든 소유주가 속한 그룹의 사용자 other -> 기타 사용자 파일 모드의 숫자와 권한 문자 간의 대응 숫자 권한 문자 설명 0 --- 권한 없음 1 --x 실행 권한 있음 2 -w- 쓰기 권한 있음 3 -wx 쓰기,실..
LR 파싱과정 - LR 파싱은 Bottom-up 파싱 기법 중 하나로, LR 분석기를 사용하여 문법을 분석합니다. 이것은 스택(stack)과 상태(state)를 사용하여 해석과정을 진행합니다. LR 파싱 과정은 다음과 같이 진행됩니다. 파서 생성 : LR 파싱을 위해 파서 생성기를 이용해 파서를 생성합니다. LR 아이템 생성 : 각 규칙마다 LR 아이템을 생성합니다. 상태 생성 : LR 아이템을 이용 하여 파싱 테이블의 상태를 생성합니다. 파싱 테이블 생성 : 생성된 상태를 이용하여 파싱 테이블 생성 파싱 : 생성된 파싱 테이블을 이용하여 입력을 분석하고 문법 규칙에 따라 파싱을 수행합니다. 예를 들어 E -> E+T | T T -> T*F | F F -> (E) | i 다음과 같은식을 SLR파싱 테이블..
*공부 기록용으로 하는 블로그입니다.잘못된 개념이나 오타가 있을 수 있습니다. 잘못된 정보알려주시면 수정하겠습니다!* 산술 연산: add: 덧셈 sub: 뺄셈 mul: 곱셈 div: 나눗셈 inc: 증가 연산 dec: 감소 연산 비트 연산: and: 논리곱 or: 논리합 xor: 배타적 논리합 not: 비트 반전 시프트 연산: shl: 왼쪽 시프트 shr: 오른쪽 시프트 논리 연산: test: 논리곱 연산 결과를 플래그 레지스터에 저장 cmp: 비교 연산 결과를 플래그 레지스터에 저장 분기 연산: jmp: 무조건 분기 jz, je: 제로 플래그가 설정될 경우 분기 jnz, jne: 제로 플래그가 설정되지 않을 경우 분기 ja, jnbe: 양수 플래그와 캐리 플래그가 모두 클 경우 분기 jb, jc, jn..
*공부 기록용으로 하는 블로그입니다.잘못된 개념이나 오타가 있을 수 있습니다. 잘못된 정보알려주시면 수정하겠습니다!* 링커란? -여려개의 오브젝트 파일에 있는 코드와 데이터를 모아서 연결하여 실행파일을 만드는 링킹(Linking)이란 작업을 하는 프로그램이다. 이것으로 인해 한개의 소스파일로 구성한 후 별도로 수정을 할 수 있고 더 세분화하여 개발이 가능해졌다.링커는 보통 오브젝트 파일에서 참조하는 함수,변수유무를 확인하고 여러 파일의 코드와 데이터섹션을 하나로 합쳐주는 작업을 합니다. 링커의 장점 -모듈화가 가능함 : 큰 파일하나를 세분화하여 나눠 여러개의 모듈로 만들 수 있다 이렇게 하면 코드의 유지보수성이 좋아지고 가독성도 좋아진다. -컴파일 간소화 : 만약에 약간의 기능을 수정해야하는데 소스코드가..
- Total
- Today
- Yesterday
- 깃허브
- 깃
- 메세지큐
- 컨테이너
- 데이터베이스
- 인공지능
- 자동화
- 컴퓨터구조
- sql
- 보안
- 스프링
- DB
- IP주소
- 네트워크
- 프로토콜
- 데이터
- 클라우드
- 소프트웨어공학
- 배포
- 쿼리
- 자바
- nat
- 문법
- 도커
- 서버
- 웹소켓
- JPA
- 파인튜닝
- 테이블
- 포트포워딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |