기초 CS 정리36 함수형 프로그래밍과 객체지향 프로그래밍 함수형 프로그래밍 💡 순수 함수를 조합하고 공유 상태, 변경 가능한 데이터 및 부작용을 피해 소프트웨어를 만드는 프로세스 선언형 프로그래밍으로 애플리케이션의 상태는 순수 함수를 통해 전달된다. 애플리케이션의 상태가 일반적으로 공유되고 객체의 메서드와 함께 배치되는 OOP와 대조되는 프로그램 방식이다. 명령형 프로그래밍(절차지향, 객체지향) 상태와 상태를 변경시키는 관점에서 연산을 설명하는 방식 → 어떻게 할지 표현 알고리즘을 명시하고 목표는 명시하지 않음 선언형(함수형) 프로그래밍 How 보다는 What을 설명하는 방식 → 무엇을 할 건지 표현 알고리즘을 명시하지 않고 목표만 명시 함수형 코드는 명령형 프로그래밍이나 OOP코드보다 더 간결하고 예측가능하여 테스트가 쉽다. 함수형 프로그래밍은 프로그래밍 언.. 2023. 2. 3. 파일 시스템 컴퓨터에서 파일이나 자료를 쉽게 발견할 수 있도록 유지 및 관리하는 방법 커널 영역에서 동작 파일 CRUD 기능을 원활히 수행하기 위한 목적 계층적 디렉터리 구조를 가진다. 디스크 파티션 별로 하나씩 둘 수 있음 파일 시스템의 역할 파일 관리 하드디스크와 메인 메모리의 속도차를 줄이기 위함 보조 저장소(하드디스크)의 용량 효율과 관리 파일 무결성 메커니즘 접근 방법 제공 파일 시스템의 구조 메타 영역 : 데이터 영역에 기록된 파일의 이름, 위치, 크기, 시간정보, 삭제유무 등의 파일 정보 데이터 영역 : 파일의 데이터 접근 방법 1. 순차 접근 (Sequential Access) 가장 간단한 접근법 대부분 연산은 read와 write 현재 위치를 가리키는 포인터에서 시스템 콜이 발생할 경우 포인터를 앞으.. 2023. 2. 2. 메모리 관리와 페이지 교체 메모리 관리 다중 프로그래밍 시스템에 여러 프로세스를 수용하기 위해 주기억장치를 동적 분할하는 메모리 관리 작업이 필요 메모리 관리 기법 연속 메모리 관리 프로그램 전체가 하나의 커다란 공간에 연속적으로 할당되어야 한다. 고정 분할 기법: 주기억장치가 고정 파티션으로 분할 → 내부의 단편화 발생 동적 분할 기법: 파티션들이 동적 생성 되어 자신의 크기와 같은 파티션에 적재 → 외부 단편화 발생 불연속 메모리 관리 프로그램의 일부가 서로 다른 주소 공간에 할당될 수 있는 기법 페이지 : 고정 사이즈의 작은 프로세스 조각 프레임 : 페이지 크기와 같은 주기억장치 메모리 조각 단편화 : 기억 장치의 빈 공간 또는 자료가 여러 조각으로 나뉘는 현상 Pasging (페이징) : 고정 크기 단순 페이징 각 프로세스.. 2023. 2. 1. Race Condition 공유 자원에 대해 여러 프로세스가 동시에 접근할 때 결과값에 영향을 줄 수 있는 상태 동시 접근 시 자료의 일관성을 해치는 결과가 나타난다. Race Condition이 발생하는 경우 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널 모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우 해결법 : 커널모드에서 작업을 수행하는 동안 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다. 프로세스가 System Call을 하여 커널 모드로 진입하여 작업을 수행하는 도중 Context Switching이 발생할 때 문제점 : 프로세스1이 커널모드에서 데이터를 조작하는 도중, 시간이 초과되어 CPU 제어권이 프로세스2로 넘어가 같은 데이터를 조작하는.. 2023. 1. 31. 이전 1 ··· 3 4 5 6 7 8 9 다음