전체 글

주로 개발에 대한 이야기들 Spring Kotlin k8s DB
· Developer/OS
Virtual Memory프로그램을 만들 때 한정된 메모리의 크기를 고려해야 된다면, 프로그래머에게 굉장한 부담으로 다가온다.이를 해결하기 위해, 프로그램의 메모리 크기를 크게 지정하여 주소로 배분하는 방식이다.∴ 중요한 것은 가상메모리와 실제 메모리 사이의 Mapping 기법이 중요!!!Page Table위에서 말한 Mapping 작업을 진행하기 위해서는 Page Table이 필요하다. Frame Valid 보통은 Frame에 들어있는 자료가 실제 메모리가 올라온 상태고, valid는 비트는 메모리가 올라와 있는지 아닌지 나타내주는 상태비트이다. ▶ Page Table 크기 구하는 방법◀ 1개의 Page크기 = 4Kbyte컴퓨터의 주소공간 크기 = 4Gbyte 일 떄,4..
· Developer/OS
Memory FragmentationRAM에서 메모리의 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 존재하지만, 할당이 불가능한 상태 ① 내부 단편화(Internal Fragmentation)- 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 메모리 공간이 낭비되는 상황② 외부 단편화(External Fragmentation)- 작은 메모리가 중간중간에 존재해서 메모리 공간은 충분하지만 실제로 할당할 수 없는 상황 ※ 해결방법(1) 페이징(Paging) : 가상메모리를 통한 외부 단편화 해결 ( 내부 단편화 존재 )-> 사용하지 않는 프레임을 페이지에 옮기고, 필요한 메모리를 페이지 단위로 프레임에 옮기는 기법 used by page table (2) 세그멘테이션(Segmentation) : 가..
· Developer/OS
모니터세마포의 단점을 개선하기 위해 조금 더 캡슐화하여 프로그래머가 정의한 ADTcf> 세마포의 단점?1. wait()가 와야되는데 , signal()이 옴 = 여러 프로세스들이 임계구역에 접근2. signal()이 와야되는데, wait()가 옴 = 교착상태에 빠짐 ● Monitor 구조 예시 12345678class monitor{ public: void procedure(); void function(); private: int count;};cs 하지만, 모니터 역시 세마포와 똑같은 단점들이 존재한다. ○ 프로세스가 자원에 대한 허락을 받지 않고 자원에 엑세스한 경우○ 프로세스가 자원에 대한 허락을 받은 다음 그 자원을 방출하지 않은 경우○ 프로세스가 자원에 대한 허락을 받지 않았는데도 그 자원을 ..
· Developer/OS
공동구역? 프로세스는 여러 가지 쓰레드로 나뉠 수 있다. 여러 개로 나뉘어지는 쓰레드 중에서 자원을 공유할 수 있게 되는데,이에 대한 처리가 너무너무너무너무 중요하다. int a = 2; while(1) {} int b = 3; while(1) {} int c = 4; while(1) {} 쓰레드1 쓰레드2 쓰레드3 프로세스(공유 자원)Critical Area= 임계구역, 각각의 쓰레드가 공통으로 사용하는 프로세스의 자원○ 이에 대한 동기화 작업이 이뤄지지 않으면, 치명적인 결함으로 이루어질 수 있다. 1. Mutual Exclusion(상호 베타) : 데이터는 반드시 한 순간에 하나의 쓰레드만 이용해야 한다.2. Progress(진행) : 쓰레드 사이에서 누가 먼저 접근할 것인가를 정해진 시간내에 결정..
· Developer/OS
What is Process? Process는 CPU에 의해 처리되는 program이다. = 실행중인 program Process의 구조프로세스는 다음과 같은 자원들이 필요하다.● CPU : PC, SP.. 같은 레지스터들● Memory의 영역들(낮은->높은 주소순)- Text 영역 : 프로그램 코드들- Data 영역 : 전역 변수들- Heap 영역 : 동적할당된 것들- stack 영역 : 지역 변수, 매개변수 등 Kernel 4GB Stack Heap bss data text 0 ● I/O 정보 : 장치를 포함한 open된 파일들Process의 상태와 전이 1. new : 프로세스가 막 만들어진 상태 2. ready : 프로세스가 메모리로 올라간 상태3. running : ready..
· Developer/OS
Operation System? 1. 사용자에게 프로그램을 실행할 수 있는 기반을 만들어주고,2. 하드웨어를 효율적으로 사용할 수 있게 다양한 기능을 제공하는 소프트웨어이다. 그의 역할은 도덕책?○ 제어 역할 : 다른 프로그램을 작업할 수 있는 환경 제공 ○ 자원 할당 : 컴퓨터 시스템의 자원을 효율적으로 분배○ IO program : 시스템에 대한 오류 발생을 방지 그럼 기능은 무엇이냐?1. 자원 관리 -> Memory, Process, File, Data ... etc2. 시스템 관리 -> 권한부여, Communication, command interpreter유형에는 어떤게 있나요?● 일괄처리 시스템(Batch processing system) - 일정기간 동안 데이터를 모두 모아서 한꺼번에 처리하..
huisam
천천히 올바르게